gpt4 book ai didi

php。是否可以将 array_column 与对象数组一起使用

转载 作者:IT老高 更新时间:2023-10-28 12:10:20 27 4
gpt4 key购买 nike

是否可以在 array_column 中传入一个对象数组?
我已经实现了ArrayAccess接口(interface),但是没有效果。
我应该实现另一个吗?

class Foo implements ArrayAccess {

public $Id, $Title;

public function offsetExists($offset)
{
return isset($this->{$offset});
}

public function offsetGet($offset)
{
return $this->{$offset};
}

public function offsetSet($offset, $value)
{
$this->{$offset} = $value;
}

public function offsetUnset($offset)
{
unset($this->{$offset});
}
}

$object = new \Foo();
$object->Id = 1;
$object->Title = 'Test';

$records = array(
$object,
array(
'Id' => 2,
'Title' => 'John'
)
);

var_dump(array_column($records, 'Title')); // array (size=1) 0 => string 'John' (length=4)

最佳答案

PHP 5

array_column 不适用于对象数组。使用 array_map 代替:

$titles = array_map(function($e) {
return is_object($e) ? $e->Title : $e['Title'];
}, $records);

PHP 7

array_column()

The function now supports an array of objects as well as two-dimensional arrays. Only public properties are considered, and objects that make use of __get() for dynamic properties must also implement __isset().

https://github.com/php/php-src/blob/PHP-7.0.0/UPGRADING#L629 -感谢 Bell提示!

关于php。是否可以将 array_column 与对象数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com