在数组中添加元素到现有数组(2d数组)- PHP


Appending Elements to a existing array within an array (2d array) - PHP

我还是个新手。

我的问题:警告:array_push()期望参数1是数组

描述:我有一份正在分析的房间号列表。房号的第一个数字是指房间的楼层。我想创建一个二维数组,其中包含楼层编号,每一层由房间组成。

代码:

    $array = self::getAllRooms();
    $floorArray = array();
    foreach($array as $row)
    {
        $floorNum = substr($row['room_no'],0,1);
        if (in_array($floorNum, $floorArray))
        {
            array_push($floorArray[$floorNum], $row['room_no']);
        }
        else 
        {
            array_push($floorArray, $floorNum);
            array_push($floorArray[$floorNum], $row['room_no']);
        }
    }

我如何将房间号附加到"1"类别中,指的是1层?

非常感谢!

代码:

$array = array(array('Stack','Overflow'));
$array[0][] = '.com';
// or
array_push($array[0],'.com');
输出:

Array
(
    [0] => Array
        (
            [0] => Stack
            [1] => Overflow
            [2] => .com
            [3] => .com
        )
)

这里有一个bug:

array_push($floorArray, $floorNum);
array_push($floorArray[$floorNum], $row['room_no']);

第一行将$floorNum的元素推入数组,但第二行期望存在等于$floorNum的元素。

你可以做你想做的更简单:

foreach($array as $row)
{
    $floorNum = substr($row['room_no'],0,1);
    $floorArray[$floorNum][] = $row['room_no'];
}