Получить пересечения двух многомерных массивовPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получить пересечения двух многомерных массивов

Сообщение Anonymous »

Это мои два массива:

Код: Выделить всё

Array
(
[25] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

[26] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

[36] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)
)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

)
и

Код: Выделить всё

Array
(
[25] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

[26] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

[30] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

)
И теперь я хочу сравнить эти массивы и вернуть все элементы массива, содержащиеся в обоих массивах. В примере это [25] и [26].

Таким образом, возвращаемый массив должен выглядеть так (как я уже сказал, [25] и [26] содержатся в оба массива, поэтому они возвращаются):

Код: Выделить всё

Array
(
[25] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)

[26] => Array
(
[items_to_give] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

[items_to_get] => Array
(
[0] => Array
(
[xx] => xx
[xx] => xx
)

)

)
)
Что я уже пробовал:

Код: Выделить всё

$result = array_map("unserialize", array_intersect($this->serialize_array_values($array1),$this->serialize_array_values($array2)));

function serialize_array_values($arr){
foreach($arr as $key=>$val){
sort($val);
$arr[$key]=serialize($val);
}

return $arr;
}
Но это возвращает массив в неправильном формате. [items_to_give] и [items_to_get] преобразуются в индексы [0] и [1], что нежелательно.

Я хочу, чтобы массив остался прежним он, когда возвращается, это означает, что мне нужны [items_to_give] и [items_to_get] вместо индексов [0] и [1]

Какие еще возможны решения? Спасибо за решения.

Подробнее здесь: https://stackoverflow.com/questions/324 ... nal-arrays
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»