2016-09-14 3 views
0

я в 2 массивовФильтрация массив из другого массива

  • $ первого, что моя модель для заказа моего результата и содержащего списка дней недели (это пример, она меняется каждую неделю)
  • $ вторых, что список 35 дней на 5 недель (с понедельника-1 до воскресенье-5) с идентификатором имя

в $ результате я nedd массив упорядоченный как $ первый, но с данными $ second (ID, post_title, post_name)

Я результат GOOT с помощью:

$posts = array_filter($second, function ($post) use ($first) { 
    return in_array($post->post_name, $first); 
}); 

Но проблема $ сообщений не упорядочены как $ первого.

Благодаря

$FIRST 
Array 
(
    [0] => Monday-5 
    [1] => Tuesday-5 
    [2] => Wednsday-5 
    [3] => Thursday-1 
    [4] => Friday-1 
    [5] => Saturday-1 
    [6] => Sunday-1 
) 

$SECOND 
Array 
(
    [0] => WP_Post Object 
     (
      [ID] => 2878 
      [post_title] => Monday-1 
      [post_name] => monday-1 
     ) 

    [1] => WP_Post Object 
     (
      ID] => 2879 
      [post_title] => Tuesday-5 
      [post_name] => tuesday-5 
     ) 
    ... 

    [34] => WP_Post Object 
     (
      ID] => 2899 
      [post_title] => Sunday-5 
      [post_name] => sunday-5 
     ) 
) 
+1

Возможный дубликат [Поиск значения в массиве и получить идентификатор в PHP] (http://stackoverflow.com/questions/39250988/find-value-in-array-and-get-id-in-php) –

+0

Не совсем, я не получил результат не очень хорошо – Pipoo

ответ

0

Если я правильно Вас понял вы хотите иметь массив результат, содержащий сначала все элементы с [post_title] => Monday-5 тогда все [post_title] => Tuesday-5 и так далее, не так ли?

Затем создайте третий пустой массив $result. Итерации над $first и внутри этого Итератете над $second и скопируйте когда-либо предмет с $second в $result ведьма выполнит ваше условие $first[$i] == $second[$i]['post_title'].

$result = array(); 
foreach($first as $scope){ 
    foreach($second as $id=>$item){ 
    if($item->post_title == $scope){ 
     $result[$id] = $item; 
    } 
    } 
} 
+0

в этом случае мой первый элемент в $ result был бы [ID] => 2978 [post_title] => Monday-5 [post_name] => monday-5 Я пробовал вас, но он останавливает PHP ... – Pipoo

+0

Кажется, проблема с $ item, не так ли? – Pipoo

+0

try 'if ($ item-> post_title == $ scope) {' вместо 'if ($ item ['post_title'] == $ scope) {' – Marcus

Смежные вопросы