2016-09-14 93 views
0

我已经2个阵列滤波阵列

  • $第一这是我订购我的结果,并含周(这是一个例子,它每周的变化)
  • 天数的 列表模型
  • $第二即35天上5周列表(从星期一-1至 星期日-5)与ID的名称

作为$结果,我NEDD阵列有序像$第一,但与从$数据第二(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 ID](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] =>星期一-5 [post_name] =>星期一-05 我试过你循环,但它停止PHP ... – Pipoo

+0

它似乎问题是与$项目,不是吗? – Pipoo

+0

尝试if($ item-> post_title == $ scope){'而不是'if($ item ['post_title'] == $ scope){' – Marcus