如何正确显示更深的数组值?

我无法使用 PHP 访问数组的更深层部分并在页面上以某种方式显示它。


我试图用一个城市和一个计数来显示这样的数据:


Mobile (3)

Auburn (2)

这是我的数组:


Array

(

[0] => Array

    (

        [0] => Array

            (

                [city] => Mobile

                [numLocations] => 3

            )


        [1] => Array

            (

                [city] => Auburn

                [numLocations] => 2

            )


    )


)

这是我到目前为止所拥有的。这仅显示“数组”一词。


while($row = mysqli_fetch_assoc($result)){

    $state = $row['state'];

    $stateAbv = $row['stateAbv'];

    $city = $row['city'];

    $numSLocations = $values['cnt']; 


    if (!isset($rows[$row['state']])){

        $rows[$row['state']] = array();

    }


    $rows[$row['state']][] = ['city' => $city, 'numLocations' => $numLocations];

}


foreach($rows as $state => $cities){

   echo array_column($cities, 'numLocations'));

}


RISEBY
浏览 105回答 2
2回答

喵喵时光机

我试图用一个城市和一个计数来显示这样的数据:手机 (3)赤褐色 (2)未经测试while($row = mysqli_fetch_assoc($result)){    if (!isset($rows[$row['state']])) $rows[$row['state']] = 0; //initialize with 0    $rows[$row['state']] += $row['cnt']; //increment the num Stores}行应该是这样的:['Mobile' => 3, 'Auburn' => 2]你也有这个问题($values):$numSLocations = $values['cnt']; 换句话说 what is $values,没有更多上下文就无法知道那是什么。我只是假设你的意思$row然后(如果你真的想要它与 () 和 2 行返回。)foreach($rows as $state => $num){   echo "$state ($num)\n\n";}输出Mobile (3)Auburn (2)如果您尝试转换该数组,我不知道这与此(MySql 结果)有什么关系:print_r(array_column($array[0], 'numLocations', 'city'));这仅适用于city唯一且不会增加的情况。这仅显示“数组”一词。当然,因为array_column返回一个数组(正如我刚刚在上面展示的),并且你不能回显一个数组,你可以但它只会说“数组”。这正是它在这段代码中所做的:foreach($rows as $state => $cities){   echo array_column($cities, 'numLocations')); //returns an array}所以改为使用print_r或var_export等......上面的结果将是这样的: [0 => 3,1 => 2]基本上是这样的:array_column($array[0], 'numLocations')

莫回无

感觉就像你只有第一个索引,你可以跳过它 array_shift$row = array_shift($row);// now fetch both the data.$temp = array_column('numLocations','city');foreach($temp as $k => $v){    $result[] = $k.'('.$v.')';}这应该可以解决您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP