我无法弄清楚如何获取数组1并使其看起来像数组2,以便我可以将它作为参数传送给我的预处理语句方法。
ARRAY 1 :(我目前拥有的)
array(5) { [0]=> array(2) { ["id"]=> string(1) "1" [0]=> string(1) "1" } [1]=> array(2) { ["id"]=> string(3) "314" [0]=> string(3) "314" } [2]=> array(2) { ["id"]=> string(3) "315" [0]=> string(3) "315" } [3]=> array(2) { ["id"]=> string(3) "316" [0]=> string(3) "316" } [4]=> array(2) { ["id"]=> string(3) "317" [0]=> string(3) "317" } }
ARRAY 2:我想要的是什么。 (请忽略缺少1项)
array(4) { [0]=> int(314) [1]=> int(315) [2]=> int(316) [3]=> int(317) }
如果重要的话,我正在尝试在PHP php7.1中完成此操作。
我认为这是足够的信息,但如果不是,请告诉我。我只是不想让你陷入各种各样的代码和解释,我不确定你需要。
到目前为止我尝试了什么(虽然可能不正确):
$category_ids2 = array_values($category_ids);
答案 0 :(得分:2)
有一个功能可以提取一列,另一个用于转换为integer
:
$category_ids = array_map('intval', array_column($category_ids, 'id'));
没有array_column
:
$category_ids = array_map(function($v) { return (int)$v['id']; }, $category_ids);
但是,这看起来很像数据库结果。如果是这样,那么只需在获取结果时以您想要的方式构建数组。此外,使用数据库库的fetch
assoc
将消除每个数组中的0
索引。
答案 1 :(得分:0)
首先使用array_column展平数组。然后合并array_map 使用intval将字符串转换为整数。一起来:
$category_ids2 = array_map('intval', array_column($category_ids, 'id'));
答案 2 :(得分:0)
$array = [['id' => '1', '0' => '1'],
['id' => '314', '0' => '314'],
['id' => '315', '0' => '315'],
['id' => '316', '0' => '316'],
['id' => '317', '0' => '317']];
echo "<pre>";
$ids = array_column($array, 'id');
unset($ids['0']);
var_dump($ids);
$integerIDs = array_map('intval', $ids);
var_dump($integerIDs);
说明:
array_column
来获取ID http://php.net/manual/en/function.array-column.php array_map('intval', $ids);
每个值都会转换为int