0

特定の配列がキー付きかインデックス付きかを確認する必要があります。例えば:

// Key defined array
array('data-test' => true, 'data-object' => false);

// Indexed array
array('hello', 'world');

foreach配列キーを使用して、すべてが整数かどうかを簡単に確認できます。しかし、それを確認する正しい方法はありますか? 組み込みの PHP 関数?

考えられる解決策

// function is_array_index($array_test);
//    $array_test = array('data-test' => true, 'data-object' => false);

foreach(array_keys($array_test) as $array_key) {
    if(!is_numeric($array_key)) {
        return false;
    }
}

return true;
4

4 に答える 4

2
function is_indexed($arr) {
  return (bool) count( array_filter( array_keys($arr), 'is_string') );
}
于 2013-03-04T20:39:24.957 に答える
1

これはphp.netfunction.is-arrayからのものです:

function is_assoc($array) {
    return (is_array($array) && 0 !== count(array_diff_key($array, array_keys(array_keys($array)))));
}
于 2013-03-04T20:39:43.987 に答える
1

関数

function isAssoc($arr)
{
    return array_keys($arr) !== range(0, count($arr) - 1);
}

動作するはずです。

于 2013-03-04T20:41:30.533 に答える
0

あなたは鍵をチェックすることができます[0]

$arr_str = array('data-test' => true, 'data-object' => false);

$arr_idx = array('hello', 'world');

if(isset($arr_str[0])){ echo 'index'; } else { echo 'string'; }

echo "\n";

if(isset($arr_idx[0])){ echo 'index'; } else { echo 'string'; }

例:http ://codepad.org/bxCum7fU

于 2013-03-04T20:41:15.600 に答える