PHP数组作为数组键

Ald*_*dee 9 php arrays

是否有可能在PHP中使数组成为一个数组键?

例:

array(
   array('sample', 'abc') => 'sample value'
);
Run Code Online (Sandbox Code Playgroud)

Kas*_*lek 9

不,如果您阅读手册

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

而且:

密钥可以是整数字符串.值可以是任何类型.


Rob*_*low 5

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

你可以做的是使用序列化:

$myArr = array( serialize(array('sample', 'abc')) => 'sample value');
Run Code Online (Sandbox Code Playgroud)

这将是相同的:

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

并可以访问如下:

echo $myArr[serialize(array('sample', 'abc'))];
Run Code Online (Sandbox Code Playgroud)

但请注意,序列化字符串将是数组项的唯一标识符,显然相当复杂,几乎不可能手动输入.

  • 这看起来很吓人...... (5认同)
  • 效率不足以成为公认的答案?;) (2认同)

nic*_*ick -3

怎么了

array(
    'sample value' => array('sample', 'abc')
);
Run Code Online (Sandbox Code Playgroud)

然后你可以做

foreach($array as $string => $child){
...
}
Run Code Online (Sandbox Code Playgroud)

并将其用于$child任何目的