如何从另一个php数组创建php哈希数组?

如何从另一个php数组创建php哈希数组?,php,arrays,hash,Php,Arrays,Hash,我想得到这样的数组=> Array ( [0] => Array ( [Poll] => Array ( [id] => 1 [question] => What's your favourite linux distribution ? [mark] => 1

我想得到这样的数组=>

Array
(
    [0] => Array
        (
            [Poll] => Array
                (
                    [id] => 1
                    [question] => What's your favourite linux distribution ?
                    [mark] => 1
                    [created] => 2011-09-05 20:30:57
                    [modified] => 2011-09-05 20:30:57
                )

        )

    [1] => Array
        (
            [Poll] => Array
                (
                    [id] => 2
                    [question] => What's your favourite editor ?
                    [mark] => 1
                    [created] => 2011-09-05 20:31:59
                    [modified] => 2011-09-05 20:31:59
                )

        )

)
有没有php函数可以实现这一点或任何快捷方式?
我知道foreach循环。

php数组中的每个键都必须是唯一的。因此,您不能有
array(“Poll”=>array(),“Poll”=>array())。但是,您可以使用以下命令

            [Poll] => Array
                (
                    [id] => 1
                    [question] => What's your favourite linux distribution ?
                    [mark] => 1
                    [created] => 2011-09-05 20:30:57
                    [modified] => 2011-09-05 20:30:57
                )
            [Poll] => Array
                (
                    [id] => 2
                    [question] => What's your favourite editor ?
                    [mark] => 1
                    [created] => 2011-09-05 20:31:59
                    [modified] => 2011-09-05 20:31:59
                )
这将使
$r
成为如下数组:

$r = array_map(function($subArray) {
  return $subArray['Poll'];
}, $inputArray);
array(
  array(
    "id" => 1,
    "question" => "What's your favourite linux distribution ?",
    "mark" => 1,
    "created" => "2011-09-05 20:30:57",
    "modified" => "2011-09-05 20:30:57",
  ),
  array(
    "id" => 2,
    "question" => "What's your favourite editor ?",
    "mark" => 1,
    "created" => "2011-09-05 20:31:59",
    "modified" => "2011-09-05 20:31:59"
  )
);
您可以这样使用它:

$r = array_map(function($subArray) {
  return $subArray['Poll'];
}, $inputArray);
array(
  array(
    "id" => 1,
    "question" => "What's your favourite linux distribution ?",
    "mark" => 1,
    "created" => "2011-09-05 20:30:57",
    "modified" => "2011-09-05 20:30:57",
  ),
  array(
    "id" => 2,
    "question" => "What's your favourite editor ?",
    "mark" => 1,
    "created" => "2011-09-05 20:31:59",
    "modified" => "2011-09-05 20:31:59"
  )
);

顺便说一下,您不应该以文本格式存储时间,特别是不应该以没有时区规范的格式存储时间。相反,使用and返回的UNIX时间戳或对象。

(参考)现在我如何访问/获取'question'的值?