3

配列が反転されたときに同様のキーの削除を回避する、私が知らない関数/方法はありますか。以下の例:

元の配列:

Array ( [last_modified] => input [published] => input [project_content] => textarea ) 

配列フリップ (キーの衝突) を使用:

Array ( [input] => published [textarea] => project_content )
4

2 に答える 2

5

キーを保持したい場合は、2 次元配列を使用できます。

<?php
$arr = array ( 'last_modified' => 'input', 'published' => 'input', 'project_content' => 'textarea' );
$result = array();
foreach($arr as $k => $v) {
    if (array_key_exists($v, $result)) {
        $result[$v][] = $k;
    } else {
        $result[$v] = array($k);        
    }
}
print_r($result);
?>

これは出力されます:

Array
(
    [input] => Array
        (
            [0] => last_modified
            [1] => published
        )

    [textarea] => Array
        (
            [0] => project_content
        )

)
于 2013-08-06T22:55:29.360 に答える
1

"input"標準関数を使用して、値を持つ配列内のすべてのキーを取得する非常に簡単な方法がありますarray_keys

$keys = array_keys($array, "input");

それだけです。実際に見てください

于 2013-08-07T08:21:10.940 に答える