【问题标题】:How push into array without creating numbered indexes in a multidimensional array in PHP?如何在 PHP 中的多维数组中不创建编号索引的情况下推入数组?
【发布时间】:2019-04-07 23:18:48
【问题描述】:

我想使用 array_push() 添加到数组中,但它总是添加[0] => Array 级别。我怎样才能防止这种情况发生,或者事后将其消除?

例如,我试图用这个推入'[addOns] => Array':

$addOnid='gcl1';
$addOnid_arr=array('inheritedFromId' => $addOnid);
array_push($result['addOns'], $addOnid_arr);

array_push 导致:

Array
(
    [addOns] => Array
        (
            [inheritedFromId] => gcl2
        )
        [0] => Array
            (
               [inheritedFromId] => gcl1
            )

)

并且想要成功:

Array
(
    [addOns] => Array
        (
            [inheritedFromId] => gcl2
        )
        (
            [inheritedFromId] => gcl1
        )
)

...基本上只是摆脱所有[0] => Array,将所有子数组上移一个级别。

也许我没有使用正确的查询,但我无法找到如何做到这一点。

【问题讨论】:

    标签: multidimensional-array array-push


    【解决方案1】:

    简单就用这个代替:

    $addOnid = 'gcl1';
    $addOnid_arr['addOns'][] = ['inheritedFromId' => $addOnid];
    

    【讨论】:

    • 同样的结果,我得到了这个:( [addOns] => Array ( [inheritedFromId] => gcl2 [0] => Array ( [inheritedFromId] => gcl1 ) ) )
    • 我正在重新考虑这一点。也许第一个“inheritedFromId”实际上应该编号,以便第二个是连续的,并且将保持在同一数组级别?而不是试图摆脱编号,去吧?所以,我最终会得到:'([addOns] => Array([0] => Array([inheritedFromId] => gcl2),[1] => Array([inheritedFromId] => gcl1)))'
    • @jamminjames 它必须被编号。或者你可以使用 $addOnid 作为数组键
    • 好的,现在很清楚了。我认为是一个错误实际上是一个功能。我试图以错误的方式创建数组。新手警告!谢谢。
    • @jamminjames 没问题,这就是你学习的方式。如果对你有帮助,请接受答案
    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 2015-11-14
    • 2023-01-31
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多