如果重复第二个维度值,则删除第一个维度元素

时间:2015-03-16 14:06:15

标签: php arrays multidimensional-array

说我有这样的数组

$posts = array(
     array('post_title'=>10, 'post_id'=>1), 
     array('post_title'=>11, 'post_id'=>2),
     array('post_title'=>12, 'post_id'=>3), 
     array('post_title'=>13, 'post_id'=>4),
     array('post_title'=>10, 'post_id'=>5)
);

如果重复一个'post_title'或'post_id'值,我怎么能删除第一个维度元素?

示例:

假设我们知道两个第一维元素中的'post_title'是'10'。

如何从$ posts中删除重复的元素? 感谢。

1 个答案:

答案 0 :(得分:1)

创建一个新数组,您将存储这些post_title值。循环遍历$posts数组并取消设置任何重复项。例如:

$posts = array(
     array('post_title'=>10, 'post_id'=>1), 
     array('post_title'=>11, 'post_id'=>2),
     array('post_title'=>12, 'post_id'=>3), 
     array('post_title'=>13, 'post_id'=>4),
     array('post_title'=>10, 'post_id'=>5)
);

$tmp_array = array();
foreach ($posts as $i => $post)
{
    if (!in_array($post['post_title'], $tmp_array)) // if it doesn't exist, store it
    {
        $tmp_array[] = $post['post_title'];
    } else { // element exists, delete it
        unset($posts[$i]);
    }
}

现在,您的$posts数组中将包含唯一的post_title值。