Я пытаюсь использовать array_combine() для объединения двух многомерных массивов, но почему-то делаю это неправильно.
Вот массив1:
Array(
[Nov 18, 2011] => Array(
[C] => 107705.5792 => 44561.52
)
[Nov 22, 2011] => Array(
[C] => -8992.8352
)
)
Вот моя попытка array_combine, которая не работает:
$array1 = ($arr1);
$array2 = ($arr2);
$result = array_combine($arr1, $arr2);
echo '
';
print_r($result);
echo '';
Что я делаю не так? Вот результат, который я ищу:
Array(
[Nov 18, 2011] => Array(
[3] => 107705.5792
[1] => 44561.52
)
[Nov 22, 2011] => Array(
[2] => -8992.8352
)
)
РЕДАКТИРОВАТЬ -
Я обнаружил, что если вместо этого использовать array_merge_recursive() , это мой результат. Не то, что я искал, но близко:
Array(
[Nov 18, 2011] => Array(
[C] => Array(
[0] => 3
[1] => 107705.5792
) => Array(
[0] => 1
[1] => 44561.52
)
)
[Nov 22, 2011] => Array(
[C] => Array(
[0] => 2
[1] => -8992.8352
)
)
)
ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ -
Вот способ, который я пытался реализовать одно из предложений ниже, однако у меня это не работает. Что не так?:
function cust_array_merge(array &$array1, array $array2) {
// loop through main array
foreach ($array1 as $key => $val) {
// check if $array2 has the same index
if (array_key_exists($key, $array2)) {
// reset $array1's indexes to $array2's values
foreach ($array2[$key] as $subKey => $subVal) {
if (array_key_exists($subKey, $array1[$key])) {
$tempVal = $array1[$key][$subKey];
unset($array1[$key][$subKey]);
$array1[$key][$subVal] = $tempVal;
}
}
}
}
}
Я пытаюсь использовать array_combine() для объединения двух многомерных массивов, но почему-то делаю это неправильно. Вот массив1: Array( [Nov 18, 2011] => Array( [C] => 107705.5792 [I] => 44561.52 ) [Nov 22, 2011] => Array( [C] => -8992.8352 ) )
Вот моя попытка array_combine, которая не работает: $array1 = ($arr1); $array2 = ($arr2); $result = array_combine($arr1, $arr2); echo ' '; print_r($result); echo '';
Что я делаю не так? Вот результат, который я ищу: Array( [Nov 18, 2011] => Array( [3] => 107705.5792 [1] => 44561.52 ) [Nov 22, 2011] => Array( [2] => -8992.8352 ) )
[list] [*]РЕДАКТИРОВАТЬ - [/list] Я обнаружил, что если вместо этого использовать array_merge_recursive() , это мой результат. Не то, что я искал, но близко: Array( [Nov 18, 2011] => Array( [C] => Array( [0] => 3 [1] => 107705.5792 ) [I] => Array( [0] => 1 [1] => 44561.52 ) ) [Nov 22, 2011] => Array( [C] => Array( [0] => 2 [1] => -8992.8352 ) ) )
[list] [*]ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ - [/list] Вот способ, который я пытался реализовать одно из предложений ниже, однако у меня это не работает. Что не так?: function cust_array_merge(array &$array1, array $array2) { // loop through main array foreach ($array1 as $key => $val) { // check if $array2 has the same index if (array_key_exists($key, $array2)) { // reset $array1's indexes to $array2's values foreach ($array2[$key] as $subKey => $subVal) { if (array_key_exists($subKey, $array1[$key])) { $tempVal = $array1[$key][$subKey]; unset($array1[$key][$subKey]); $array1[$key][$subVal] = $tempVal; } } } } }
Я пытаюсь создать массив путем объединения нескольких массивов по столбцам.
Отдельные массивы не имеют ключей, имя переменной массива будет определять ассоциативные ключи в строки нового массива.
Например:
$product_name = ;
$product_id = ;
Я хочу сравнить два массива, если адрес электронной почты из массива 1 существует в массиве 2 (здесь: [email protected]). В этом случае должно отображаться, что адрес электронной почты уже существует.