PHP:根据对象元素的标准拉取数组对象元素?

时间:2011-12-31 18:42:07

标签: php arrays object

我有这个对象数组。但是我想只拔出符合某个标准的物体。如果你查看“post_title”键,我想只在不包含逗号的情况下拉出对象。这可能吗?

所以在我下面的例子中,我想在索引2中拉出数组,因为那是唯一一个在“post_title”键中没有逗号的数组。

Array
(
    [0] => stdClass Object
        (
            [ID] => 504
            [post_title] => Playroom (Black, Custom 2)
        )

    [1] => stdClass Object
        (
            [ID] => 503
            [post_title] => Playroom (Black, Custom 1)

        )

    [2] => stdClass Object
        (
            [ID] => 252
            [post_title] => Play (Black)

        )

)
1

感谢您关注此事。

3 个答案:

答案 0 :(得分:0)

是的,你可以,但你必须自己编码,如下:

$results = array();
foreach ($source as $obj) {
  if (strpos($obj->post_title, ',') === false) {
    $results[] = $obj;
  }
}
// $results will now have the elements filtered

答案 1 :(得分:0)

检查array_filter函数 - http://php.net/manual/en/function.array-filter.php

$myArray = /*snip*/;

function titleDoesNotContainComma($object) {
    return strpos($object->post_title, ',') === false; 
}

$filteredArray = array_filter($myArray, 'titleDoesNotContainComma');

答案 2 :(得分:0)

你有什么尝试?您可以直接对阵列进行操作,并使用相关结果构建一个新数组。或者你可以使用array_filter,如下所示:

function hasComma( $object ) {
  if( strpos( $object->post_title, ',' ) ) {
    return false;
  } else {
    return true;
  }
}

var_dump( array_filter( $array, 'hasComma' ) );