本文共 1636 字,大约阅读时间需要 5 分钟。
array_column 函数首先适用于 PHP 5.5 及以上版本。对于 PHP 5.3 及以下版本,使用该函数会导致 Call to undefined function array_column() 错误,无法正常运行。
array_column 是一个强大的 PHP 函数,可用于从二维数组中提取特定列,返回一维数组。以下是该函数的基本使用方法:
以下代码示例展示了如何从二维数组中提取某一列并将其转换为一维数组:
$a = array( array('discussion_id' => 123456), array('discussion_id' => 27495220), array('discussion_id' => 27495087));$a = array_column($a, 'discussion_id');var_dump($a); 如果需要提取多列,可以通过多次调用 array_column 函数来实现:
$b = array( array('id' => 345, 'name' => '小王', 'address' => 'beijing'), array('id' => 298, 'name' => '小张', 'address' => 'shanghai'), array('id' => 390, 'name' => '小明', 'address' => 'guangzhou'));$b = array_column($b, 'name', 'id');var_dump($b); 如果你的服务器环境使用的是 PHP 5.3 或更低版本,无法直接使用 array_column 函数提取特定列。此时,可以手动实现该功能。
以下是一个实现手动提取特定列的方法示例:
public static function getNewArrByElement($list, $element){ if (!isset($list) || !is_array($list) || empty($list)) { return array(); } if (!isset($element) || empty($element)) { return array(); } $result = array(); $j = 0; for ($i = 0; $i < count($list); $i++) { if (isset($list[$i][$element])) { $result[$j] = $list[$i][$element]; $j++; } else { return array(); } } return $result;} 将上述函数加入到你的项目中后,可以按照以下方式使用:
$a = array( array('discussion_id' => 123456), array('discussion_id' => 27495220), array('discussion_id' => 27495087));$a = CommonUtil::getNewArrByElement($a, 'discussion_id');var_dump($a); 通过以上方法,你可以在 PHP 版本低于 5.5 的环境中,手动实现从二维数组中提取某一列的功能。
转载地址:http://uttfk.baihongyu.com/