php - array_column 从包含数据的数组返回 0 个结果

标签 php mysql arrays codeigniter

我有一些数据进入一个包含多行和多列的页面。我特别希望将 1 整列放入另一个数组中。

我正在使用 codeigniter 和 php。我页面上的 var dump 显示其原始数组中的数据正常到达。但是,一旦我开始尝试在页面上创建第二个数组,该数组就会返回 0 个结果。

这是原始数组的 var_dump。为了您的理智,我只发布第一个序列。

array(7) { [0]=> object(stdClass)#19 (7) { ["id"]=> string(1) "1"
["serial_number"]=> string(9) "battery 1" ["battery_type"]=> string(4) "Lipo" ["cell_count"]=> string(1) "4" ["capacity"]=> string(4) "16.8" ["date_submitted"]=> string(19) "0000-00-00 00:00:00" ["user_id_submitted"]=> string(0) "" } [1]=>

这是array_column函数

<?php 
    $serialnumber = array_column($batteryDb, "serial_number");
    var_dump($serialnumber);
?>

结果如下:

array(0) { }

最佳答案

好的,var_dump($batteryDb); 显示了这个:

array(7) { 
 [0] => object(stdClass)#19 (7) {                     <----- object  !!
    ["id"]=> string(1) "1" 
    ["serial_number"]=> string(9) "battery 1" 
    ["battery_type"]=> string(4) "Lipo" 
    ["cell_count"]=> string(1) "4" 
    ["capacity"]=> string(4) "16.8" 
    ["date_submitted"]=> string(19) "0000-00-00 00:00:00" 
    ["user_id_submitted"]=> string(0) "" }
 [1] =>

问题是此数组结构不适用于 PHP5 上的 array_column

您有一个对象数组,但该函数需要一个数组数组。

array_column 上的对象数组仅受 PHP7 支持。 引用:https://github.com/php/php-src/blob/PHP-7.0.0/UPGRADING#L626


基本的解决方案是将您的对象变成数组:

array(7) { 
     [0] => array (7) {                              <----- array !!
        ["id"]=> string(1) "1" 

您可以使用:

  • $array = (array) $object;
  • $array = get_object_vars($object);
  • 如果是多维的:$array = json_decode(json_encode($object), true);

试一试:

$batteryDbArray = json_decode(json_encode($batteryDb), true);

$serial_numbers = array_column($batteryDbArray, 'serial_number');
var_dump($serial_numbers);

关于php - array_column 从包含数据的数组返回 0 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251750/

相关文章:

php - 检查用户是否收藏了某个项目

java - 使用 ArrayList<String> 的 Android Java 字符串数组

php - 如何使用 PHP 在 html 表格中添加分页?

c# - Godaddy .net 网站托管问题 - 没有此类主机已知错误

MySQL、PHPMyAdmin-处理链接表索引

mysql - 我怎样才能删除这个外键列?

javascript - 恢复选中复选框的所有值并将它们插入数组中

java - 如何将扫描仪输入放入数组中......例如几个数字

php - 解释这个数组转置和展平函数是如何工作的

php - 需要一个脚本来传输最新的 MySQL 字段条目