$number_array = array();
//in a while loop
//part of code
if(array_key_exists($read_num, $number_array))
{
$arr[$read_num][A] .= $new_A;
}
else
{
$inner_arr = array( "$read_num" => array( "id"=>$read_num, "A"=>$new_A ) );
$number_array = array_push($number_array,$inner_arr);
unset($inner_arr);
}
我得到的错误如下:
警告:array_key_exists()[function.array-key-exists]:第二个参数应该是第24行的try.php中的数组或对象
警告:array_push()[function.array-push]:第一个参数应该是第33行的try.php中的数组
我在while循环之外声明一个空数组
$number_array = array();
我在这里做错了导致错误出现
修改
当我执行上面的代码时,我有这个值
Array
(
[0] => Array
(
[0011] => Array
(
[id] => 0011
[A] => 2.50
[B] => 2.00
[C] => 5.40
)
)
[1] => Array
(
[0017] => Array
(
[id] => 0017
[A] => 5.00
[B] => 0.00
[C] => 8.00
)
)
[2] => Array
(
[0022] => Array
(
[id] => 0022
[A] => 1.00
[B] => 0.00
[C] => 1.60
)
)
如何删除[0]
,[1]
和[2]
并将其设为[0011]
,[0017]
,[0022]
以便我的数组键存在可以工作
答案 0 :(得分:4)
这是因为您将array_push
的返回值重新分配给$number_array
$number_array = array_push($number_array,$inner_arr);
将其删除:
array_push($number_array,$inner_arr);
因为array_push
返回数组中的新元素数而不是数组本身。
或者你可以写:
$number_array[] = $inner_arr;
这是一回事。