ホームページ >バックエンド開発 >PHPチュートリアル >PHP の下位バージョン (バージョン 5.5 より前) と互換性のある array_column() 関数の共有

PHP の下位バージョン (バージョン 5.5 より前) と互換性のある array_column() 関数の共有

WBOY
WBOYオリジナル
2016-06-20 13:01:171419ブラウズ

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;
	}
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。