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')
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.')';
}
这应该可以解决您的问题。
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报