16

php中是否可以将数组也设为数组键?

例子:

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

4 回答 4

13

不,如果您阅读手册

PHP 中的数组实际上是一个有序映射。映射是将值与键相关联的类型。这种类型针对几种不同的用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。由于数组值可以是其他数组,因此树和多维数组也是可能的。

和 :

键可以是整数字符串。该值可以是任何类型。

于 2012-09-05T14:18:16.263 回答
7

这是不可能的——数组键必须 是字符串或整数

你可以做的是使用serialize

$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 回答