Задать вопрос
@narem

Как сложить 2 массива по порядку в php?

jjhNiVe9Kk4.jpg
вот есть 2 верхних массива. У первого ключи четные, у второго нет. Нужно сложить их так, что бы получалось ()()() . Т.е ключи как бы встали по порядку.
Пробовал и просто сложить 2 массива, пробовал и array_merge, результат постоянно как на скрине.
$text = "THE SOFTWARE IS PROVIDED, WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCL(UDING BUT NOT LIMITED TO THE WARRAN)TIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, (TORT O(R OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER) DEALIN)GS IN
 THE SOFTWARE.";
	preg_match_all('|[()]|', $text, $array);
	foreach($array as $value){
		foreach($value as $filter){
			if($filter == "("){
				$open[] = '(';
			} else {
				$close[] = ')';
			}
		}
	}
	$count_open = count($open);
	$count_cloase = count($close);
	for($i=0, $w = 0;$i < $count_open;$i++,$w+=2){
		$q[] = 0 + $w;
	}
	for($i=0, $e=0; $i < $count_cloase;$i++, $e+=2){
		$r[] = 1+$e;
	}
	$t = array_combine($q, $open);
	$y = array_combine($r, $close);
	$result = array_merge($t,$y);
		echo '<pre>'; 
	var_dump($t);
	echo '</pre>'; 
		echo '<pre>'; 
	var_dump($y);
	echo '</pre>'; 
	echo '<pre>'; 
	var_dump($result);
	echo '</pre>';
  • Вопрос задан
  • 718 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@bigsnake
@Q_BASIC
Программист
$a1 = [
			0 => '(',
			2 => '('
		];
		
		$a2 = [
			1 => ')',
			3 => ')'
		];
		
		$result = [];
		for($i = 0; $i < count($a1) * 2; $i++)
		{
			$result[] = $a1[$i].$a2[$i+1];
			
			$i++;
		}
		
		print_r($result);


так?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы