16

PHPで配列を配列キーにすることは可能ですか?

例:

array(
   array('sample', 'abc') => 'sample value'
);
4

4 に答える 4

13

いいえ、マニュアルを読めば

PHP の配列は、実際には順序付きマップです。マップは、値をキーに関連付けるタイプです。このタイプは、いくつかの異なる用途に最適化されています。配列、リスト (ベクトル)、ハッシュ テーブル (マップの実装)、辞書、コレクション、スタック、キューなどとして扱うことができます。配列値は他の配列にすることができるので、ツリーや多次元配列も可能です。

と :

キーは整数または文字列のいずれかです。値は任意の型にすることができます。

于 2012-09-05T14:18:16.263 に答える
7

これは不可能です。配列キーは文字列または整数である必要 があります。

あなたができることはシリアル化を使用することです:

$myArr = array( serialize(array('sample', 'abc')) => 'sample value');

これは次と同じになります:

$myArr = array( 'a:2:{i:0;s:6:"sample";i:1;s:3:"abc";}' => 'sample value');

次のようにアクセスできます。

echo $myArr[serialize(array('sample', 'abc'))];

ただし、配列項目の一意の識別子となるシリアル化された文字列は明らかにかなり複雑であり、手動で入力することはほとんど不可能であることに注意してください。

于 2012-09-05T14:14:43.190 に答える
1

PHP 配列には整数キーと文字列キーを含めることができますが、PHP はインデックス付き配列と連想配列を区別しないためです。PHPマニュアルを探すPHPマニュアル

于 2012-09-05T14:16:20.587 に答える
-3

どうしたの

array(
    'sample value' => array('sample', 'abc')
);

あなたはそれからすることができます

foreach($array as $string => $child){
...
}

$childあらゆる目的に使用します

于 2012-09-05T14:12:46.347 に答える