2016-08-31 24 views
0

我有2个具有不同结构(维度)的数组,我需要在$ second中查找$ first的值(post_name),然后从$ second中获取ID以创建一个post_name为$ first的唯一数组以及以$秒为单位创建的对应ID。我希望我足够清楚......查找数组中的值并在PHP中获取ID

我需要保持第一 感谢的顺序相同

$first= Array 
(
    [0] => 'lundi-5', 
    [1] => 'mardi-5', 
    [2] => 'lundi-1', 
    [3] => 'mardi-1', 
    ); 



$second=Array 
(
    [0] => WP_Post Object 
     (
      [ID] => 2878 

      [post_name] => lundi-1 

     ) 

    [1] => WP_Post Object 
     (
      [ID] => 3180 
      [post_name] => mardi-1 

     ) 

    [2] => WP_Post Object 
     (
      [ID] => 3181 
      [post_name] => lundi-5 

     ) 

    [3] => WP_Post Object 
     (
      [ID] => 3182 

      [post_name] => mardi-5 

     ) 

回答

1

只是尝试:

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

输出:

array(2) { 
    [2]=> 
    int(3181) 
    [3]=> 
    int(3182) 
} 

要返回整个对象,请使用:

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

谢谢!!!但对不起,我不理解,阵列结构...怎么能得到我作为结果这样的数组: 阵列 ( [0] =>数组 ( [名称] => Lundi将军-5- [ID ] => 3181 ) [1] =>数组 ( [名称] =>狂欢-5- [ID] => 3182 ) ) – Pipoo

+0

@ user6677795检查我的编辑。 – hsz

+0

奇怪,当我尝试数组返回是空的... – Pipoo