将字符串的关联数组转换为整数的平面数组(仅限值)

时间:2018-02-21 22:28:36

标签: php arrays multidimensional-array

我无法弄清楚如何获取数组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);

3 个答案:

答案 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);

说明:

  1. 您应该使用array_column来获取ID http://php.net/manual/en/function.array-column.php
  2. 如果不需要位置零,则
  3. 然后取消设置
  4. array_map('intval', $ids);每个值都会转换为int
相关问题