PHP创建一个空数组

时间:2014-12-16 18:07:18

标签: php arrays

$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]以便我的数组键存在可以工作

1 个答案:

答案 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;

这是一回事。