这是我的var_dump:
array(2) {
[1]=>
object(stdClass)#382 (3) {
["name"]=>
string(12) "Other fields"
["sortorder"]=>
string(1) "1"
["id"]=>
int(1)
}
[3]=>
object(stdClass)#381 (3) {
["name"]=>
string(6) "custom"
["sortorder"]=>
string(1) "2"
["id"]=>
int(3)
}
}
我需要一些PHP来选择第二个对象,显然它不会永远是第二个对象,所以我需要根据它的[“name”]选择它,它总是“自定义”。
以下代码为我提供了所有名称,但我只想要“自定义”并获取自定义ID。
foreach ($profilecats as $cat) {
$settings .= $something->name;
}
答案 0 :(得分:1)
foreach ($profilecats as $cat) {
if ($cat->name == 'custom') {
echo $cat->id;
}
}
答案 1 :(得分:1)
替代:
class ObjectFilter extends FilterIterator
{
protected $propName = null;
protected $propValue = null;
public function filterBy($prop, $value)
{
$this->propName = $prop;
$this->propValue = $value;
}
public function accept() {
if(property_exists($this->current(), $this->propName)) {
return $this->current()->{$this->propName} === $this->propValue;
}
}
}
$finder = new ObjectFilter( new ArrayIterator( $cats ) );
$finder->filterBy('name', 'custom');
foreach($finder as $cat) {
var_dump($cat);
}
这是一个按属性和属性值过滤的通用过滤器。只需更改filterBy
的参数,例如filterBy('id', 1)
只返回属性id
设置为1
的对象。
答案 2 :(得分:0)
...
foreach ($profilecats as $value)
{
if ($value === "custom")
{
$id = $profilecats['id'];
break;
}
}
答案 3 :(得分:0)
function get_object($array, $name)
{
foreach ($array as $obj)
{
if ($obj->name == $name)
{
return $obj;
}
}
return null;
}