为数组中的每个对象输出属性的快速而干净的方法是什么。例如:
$array=[object1,object2,object3];
现在我只需要得到每个对象的名称:
object->name;
并作为类似的字符串输出
name1,name2,name3
我不喜欢使用for循环,我想php中有一种快速的方法,请建议。谢谢
使用array_map
将对象数组投影到属性值数组中;之后,implode
可以为您生成一个漂亮的小字符串值:
$array = [ /* ... */ ];
echo implode(',', array_map(function($el) { return $el->name; }, $array));
好吧,您可以使用foreach循环:
foreach ($array as $value) {
$value->name;
}
如果您不知道数组中有多少元素,我不知道在没有任何循环的情况下如何做到这一点。
天哪!循环有什么问题?它是最基本的编程构造之一。
当然,您可以使用闭包:
array_walk($array, function($item) {
echo $item->name . ",";
});
或:
echo implode(",", array_map(function($item) {
return $item->name;
}, $array));
但这真的比更容易理解吗
foreach($array as $item) {
echo $item->name . ",";
}
现在,请忽略编程中需要循环的事实。他们很多!
你是说像
$str = $array[0]->name . ',' .
$array[1]->name . ',' .
$array[2]->name;
如果你想让它是dnymic的,那么,你必须迭代:
$str = '';
foreach($array AS $object){
$str .= ',' . $object->name;
}