为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
RISEBY 2021-06-19 18:19:29
我无法使用 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'));}
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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


手机 (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')



查看完整回答
反对 回复 2021-06-25
?
莫回无

TA贡献1865条经验 获得超7个赞

感觉就像你只有第一个索引,你可以跳过它 array_shift


$row = array_shift($row);

// now fetch both the data.

$temp = array_column('numLocations','city');

foreach($temp as $k => $v){

    $result[] = $k.'('.$v.')';

}

这应该可以解决您的问题。


查看完整回答
反对 回复 2021-06-25
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信