大家好。现在我正在尝试从SQL查询后将数组合并到数组中。.和这样的结果
array(3) {
[0]=>
array(1) {
["building_id"]=>
string(1) "1"
}
[1]=>
array(1) {
["building_id"]=>
string(1) "2"
}
[2]=>
array(1) {
["building_id"]=>
string(1) "3"
}
}
我已经尝试使用此代码
$result=[];
foreach($bulding_ids as $arr)
{
$result = array_merge($arr['building_id'],$result);
}
但这也许不是答案
我想让数组变成这样
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
我可以那样做吗?
答案 0 :(得分:0)
您需要解析第一个数组中的每个元素并返回ID。然后,将其转换为int类型。最后,将新值保存到新数组中。
<?php
$bulding_ids[] = ["Building_id" => "1"];
$bulding_ids[] = ["Building_id" => "2"];
$bulding_ids[] = ["Building_id" => "3"];
$result = array();
foreach($bulding_ids as $val){
$result[] = (int)$val['Building_id'];
}
var_dump($result);
答案 1 :(得分:0)
您可以只使用array_column()
。
$result = array_column($building_ids, 'building_id');
array_column()
从输入的单个列返回值, 由column_key
标识。 (可选)index_key
可以是 提供以通过以下方式索引返回数组中的值 输入数组的index_key
列。
这消除了循环的需要。
输出:
array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" }
唯一的缺点是,所有建筑物ID都将存储为字符串。如果这对您的应用程序来说是个问题,则可以轻松地使用array_map()
将它们转换为整数。
直接在上面一行之后,执行以下操作:
$result = array_map('intval', $result);
的数组
array_map()
返回一个包含array1
所有元素的数组 在将回调函数应用于每个函数之后。的数量 回调函数接受的参数应与数字匹配 传递给array_map()
输出:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
您还可以将其作为单行解决方案:
$result = array_map('intval', array_column($building_ids, 'building_id'));
但是我认为这看起来有些混乱。