PHP多维数组嵌套两次

use*_*208 1 php arrays multidimensional-array

我正在使用此函数从数据库中获取数据.

public function getModelSpecs($modelCode) {
    $modelSpecs = db::fetch_array("SELECT * FROM `product_specs` WHERE model='{$modelCode}'");

    return $modelSpecs;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用基于前一项的计数的for循环访问.

for ($i = 0; $i < count($model); $i++) {
    $modelSpecs[] = $product->getModelSpecs($model[$i]['code']);
    $count++;
}
echo "<pre>".print_r($modelSpecs, true)."</pre>";
Run Code Online (Sandbox Code Playgroud)

这一切都有效,但为什么它像这样嵌套我的数组,就像在它的两个层次深.

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => 183
                    [model] => ZS125-48A
                    [engine_brand] => 158FMI-B
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [id] => 172
                    [model] => STR125YB
                    [engine_brand] => K154FMI
                )

        )
Run Code Online (Sandbox Code Playgroud)

这只是它的结构,因为我已经在函数中获取数组,或者我不能这样做,所以它只是这样下降一个级别:

Array
(
    [0] => Array
        (
                [id] => 183
                [model] => ZS125-48A
                [engine_brand] => 158FMI-B
        )

    [1] => Array
        (
                [id] => 172
                [model] => STR125YB
                [engine_brand] => K154FMI
        )
Run Code Online (Sandbox Code Playgroud)

谢谢

Dru*_*beg 6

我觉得行

$modelSpecs[] = $product->getModelSpecs($model[$i]['code']);
Run Code Online (Sandbox Code Playgroud)

应该只是

$modelSpecs = $product->getModelSpecs($model[$i]['code']);
Run Code Online (Sandbox Code Playgroud)

否则,您将结果集分配给$ modelSpecs数组的元素,而我认为您正在尝试将$ modelSpecs分配给整个结果集.