ホームページ >バックエンド開発 >PHPチュートリアル >PHP の下位バージョン (バージョン 5.5 より前) と互換性のある array_column() 関数の共有
PHP の下位バージョン (バージョン 5.5 より前) の array_column() 関数と互換性があります
PHP 5.5 には新しい array_column() 配列関数があり、これを以前のバージョンの PHP 環境で使用する必要がある場合は機能しません。この記事では、PHP 5.5 以前のバージョンと互換性のある array_column() 関数をコードを直接入力して実装する方法を紹介します。
if(!function_exists("array_column")){ function array_column($input, $columnKey, $indexKey = NULL){ $columnKeyIsNumber = (is_numeric($columnKey)) ? TRUE : FALSE; $indexKeyIsNull = (is_null($indexKey)) ? TRUE : FALSE; $indexKeyIsNumber = (is_numeric($indexKey)) ? TRUE : FALSE; $result = array(); foreach ((array)$input AS $key => $row){ if ($columnKeyIsNumber){ $tmp = array_slice($row, $columnKey, 1); $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : NULL; }else{ $tmp = isset($row[$columnKey]) ? $row[$columnKey] : NULL; } if (!$indexKeyIsNull){ if ($indexKeyIsNumber){ $key = array_slice($row, $indexKey, 1); $key = (is_array($key) && ! empty($key)) ? current($key) : NULL; $key = is_null($key) ? 0 : $key; }else{ $key = isset($row[$indexKey]) ? $row[$indexKey] : 0; } } $result[$key] = $tmp; } return $result; } }