我在下一段代码上遇到错误Illegal offset type
(foreach方法中的情况导致错误):
$filter = [];
foreach ($properties[array_keys($properties)] as $prop)
array_add($filter, array_keys($prop), $prop->id);
这就是$properties数组的样子。我想做的是将$properties
中的数组元素添加到另一个数组(例如$filter['1'] = $properties['1']
)中。问题在于,我永远不知道$properties
内将有多少个元素(数组),而且我也不知道它们将是什么值,因此我可以访问它们。
如果有更简单的方法可以实现此目的,请随时写下来。
P.S。
id
是$properties
中数组的元素。
答案 0 :(得分:2)
对我来说,这似乎不是有效的代码。 array_keys
returns a new array,您试图将其用作从$properties
内部的foreach
中获取价值的键
尝试一下:
$filter = [];
foreach ($properties as $key => $prop)
$filter[$key] = $prop['id'];
如果您只想要ID,我建议使用array_pluck
。
它是laravels amazing helper functions
它看起来像这样:
$filter = array_pluck($properties, 'id');