以下评论GOAL
的行会产生错误。错误没有显示(只是得到一个白色的屏幕),我没有访问php.ini来更改设置。我很确定这个错误是“不能用[]来阅读”。
我该如何解决这个问题?必须保留密钥,而array_push似乎不可能。
foreach ($invention_values as $value)
{
if( array_key_exists($value->field_name, $array) )
{
//GOAL but creates error: $array[$value->field_name][] = $value->field_value;
//works but only with numeric keys
array_push($array, $value);
}
else $array[$value->field_name] = $value;
}
编辑:代码
EDIT2:实际上我认为错误是因为我正在处理一个对象而不是一个数组。
的对象是什么$array[$value->field_name][] = $value ?
答案 0 :(得分:0)
您的$array[$value->field_name]
为空,因此您无法使用[]
。要将其初始化为数组,您必须执行以下操作:
if(!array_key_exists($value->field_name, $array) ){
$array[$value->field_name] = array();
}
$array[$value->field_name][] = $value->field_value;
它与你在上一行中的内容相矛盾,所以你必须决定,你希望$array[$value->field_name]
是一个数组或标量值。