array_column() の代替 (ポリフィル) 質問する

array_column() の代替 (ポリフィル) 質問する

array_column()プロジェクトで使用しましたが、アップロード後に、この機能をサポートしているのは PHP 5.5 以上であることがわかりました。また、使用しているホスティングでは PHP 5.5 以上をサポートしていないと思われます。

そこで、このエラーを修正する別の方法があるかどうかを知りたいです。

array_column私のプロジェクトでは次のように使用しています:

array_count_values(array_column(json_decode(json_encode($queryResultArray), true), $idForBar));

これはローカルの xampp と wampp でも正常に動作しますが、サーバー上では問題が発生します。代わりの機能や解決策を探しています。

ベストアンサー1

array_columnPHP バージョンがサポートしていない場合は、独自の関数を追加します。

<?php
if (! function_exists('array_column')) {
    function array_column(array $input, $columnKey, $indexKey = null) {
        $array = array();
        foreach ($input as $value) {
            if ( !array_key_exists($columnKey, $value)) {
                trigger_error("Key \"$columnKey\" does not exist in array");
                return false;
            }
            if (is_null($indexKey)) {
                $array[] = $value[$columnKey];
            }
            else {
                if ( !array_key_exists($indexKey, $value)) {
                    trigger_error("Key \"$indexKey\" does not exist in array");
                    return false;
                }
                if ( ! is_scalar($value[$indexKey])) {
                    trigger_error("Key \"$indexKey\" does not contain scalar value");
                    return false;
                }
                $array[$value[$indexKey]] = $value[$columnKey];
            }
        }
        return $array;
    }
}

参照:

おすすめ記事