假设我在PHP中有一个对象数组,例如:
Array (
[0] => stdClass Object (
[id] => 1
[name] => Title One
)
[1] => stdClass Object (
[id] => 2
[name] => Title Two
)
[2] => stdClass Object (
[id] => 7
[name] => Title Seven
)
)
Run Code Online (Sandbox Code Playgroud)
获取ID数组的最佳方法(即最快)是什么?即array(1,2,7)我可以手动循环,但我觉得必须有一个更好的方法.
刚刚在类似的问题中看到了这一点,但是对于接受的答案是否真的是最好的方式还有一些争论,加上它是从2年前开始的.我在PHP 5.3上.
您可以使用array_map从每个元素获取ID.
function getID($a){
return $a->id;
}
$IDs = array_map('getID', $array);
Run Code Online (Sandbox Code Playgroud)
从PHP 7.0开始,您可以array_column为此使用内置函数,该函数采用输入数组和要提取的属性的名称:
$ids = array_column($input, 'id');
// array(0 => 1, 1 => 2, 2 => 7)
Run Code Online (Sandbox Code Playgroud)
作为第三个参数,您还可以选择提供一个索引键:
$ids = array_column($input, 'name', 'id');
// array(1 => 'Title One', 2 => 'Title Two', 7 => 'Title Seven')
Run Code Online (Sandbox Code Playgroud)
请注意,尽管PHP 5.5.0已经提供了该功能,但PHP 7.0首次引入了对对象数组的支持。
| 归档时间: |
|
| 查看次数: |
6520 次 |
| 最近记录: |