как я могу совместить строковые значения двух массивов попарно с PHP?

Итак, у меня есть два массива

Array ( [0] => test [1] => test 1 [2] => test 2 [3] => test 3 ) 

а также

 Array ( [0] => test [1] => test 1 [2] => test 2 [3] => test 3 ) 

Я хочу объединить их вместе, чтобы получить массив вроде этого?

 Array ( [0] => test test [1] => test 1 test 1 [2] => test 2 test 2 [3] => test 3 test 3 ) 

Я нашел множество функций, таких как array_merge и array_combine но ничего, что делает то, что я хочу сделать.

Есть идеи?

Заранее спасибо.

Максимум

Related of "как я могу совместить строковые значения двух массивов попарно с PHP?"

Вы можете сделать это с помощью array_map :

 $combined = array_map(function($a, $b) { return $a . ' ' . $b; }, $a1, $a2)); 

Вот однострочное решение, если вы используете Php 5.3.0+:

 $result = array_map(function ($x, $y) { return $x.$y; }, $array1, $array2); 

вы пропустите его, чтобы создать новый массив. Нет встроенной функции. Добро пожаловать в чудесный мир программирования 🙂

подсказки:

вы можете сделать это, как

 for($i; $i<count($a); $i++) { $arr[$i] = $a[$i]." ".$b[$i]; } 

Просто выполните цикл и назначьте конкатенацию новому массиву:

 $array1=array("test","test 1","test 2","test 3"); $array2=array("x","y","z","w"); $new_array=array(); foreach (range(0,count($array1)-1) as $i) { array_push($new_array,$array1[$i] . $array2[$i]); } 

Предполагая, что два массива: $ array1 и $ array2

 for($x = 0; $x < count($array2); $x++){ $array1[$x] = $array1[$x] . ' ' . $array2[$x]; } 

Если у вас есть данные, поступающие из двух разных запросов, и они становятся двумя разными массивами, объединение их не всегда является ответом.

Там, когда они помещаются в массив ([]), они могут быть зациклированы с помощью foreach, чтобы подсчитать, сколько, а затем зациклировано.

Примечание: они должны иметь одинаковую сумму в каждом массиве или один может закончить перед другим … ..

 foreach ($monthlytarget as $value) { // find how many results there were $loopnumber++; } echo $loopnumber; for ($i = 0; $i < $loopnumber; $i++) { echo $shop[$i]; echo " - "; echo $monthlytarget[$i]; echo "<br>"; } 

Затем отобразится: –

Tescos – 78
Асда – 89
Моррисонс – 23
Sainsburys – 46

Вы можете даже добавить номер счета, чтобы показать этот номер позиции списка.

Для этого нет встроенной функции (я знаю). Используйте цикл:

 $combined = array(); for($i = 0, $l = min(count($a1), count($a2)); $i < $l; ++$i) { $combined[$i] = $a1[$i] . $a2[$i]; } 

Адаптируйте цикл по своему вкусу: только объедините минимальное количество элементов, объедините пустую строку, если один из массивов короче и т. Д.