我有很多像下面那样的数组。这些是从数据库中检索的数据的结果。我需要最后一个数组来提供所提到的结构,因为我需要预先循环每个'注释'在连续的代码中。我不能只使用for循环。
array('title' => 'Testing',
'content' => 'some text',
'created' => 'time',
'tags' => array(array('title' => 'hello')),
)
array('title' => 'Testing',
'content' => 'some text',
'created' => 'time',
'tags' => array(array('title' => 'hello')),
)
我想以格式数组合并所有这些:
array(
array('notes' =>
array('title' => 'Testing',
'content' => 'some text',
'created' => 'time',
'tags' => array(array('title' => 'hello')),
),
),
array('notes' =>
array('title' => 'Testing',
'content' => 'some text',
'created' => 'time',
'tags' => array(array('title' => 'hello')),
),
),
);
我尝试过很多PHP函数,但没有人给我我想要的结果。有谁可以帮助我吗?是否有内置的PHP函数可以做到这一点?有人能告诉我一个例子。
感谢。
答案 0 :(得分:2)
如果我正确理解您的问题,您实际要做的就是将每个数组元素放入另一个数组notes
并且值为元素的数组(另一个数组)。
在这种情况下,使用foreach
或array_map
即可。
$newArray = array_map(function($v) { return ['notes' => $v]; }, $array);
或使用foreach(更冗长的方式)......
foreach($array as $value) {
$newArray[] = ['notes' => $value];
}
答案 1 :(得分:1)
这是评论我想要格式化...
你问过一个阵列' '阵列条目'每个条目的位置
我认为'标签'如果没有额外的“嵌套”级别,您的部分结构将更容易使用。
以下是创建和显示“想要”的代码。输出带有'标记'条目改变了:
$wanted = array(
array('notes' =>
array('title' => 'Testing 1',
'content' => 'some text 1',
'created' => date('Y-m-d H:i:s'),
'tags' => array('title' => 'hello',
'tagFoo' => 'foo' ),
),
),
array('notes' =>
array('title' => 'Testing 2',
'content' => 'some text 2',
'created' => date('Y-m-d H:i:s'),
'tags' => array('title' => 'hello',
'tagBar' => 'bar'),
),
),
);
echo '<pre>';
print_r($wanted);
echo '</pre>';
这是输出:
Array
(
[0] => Array
(
[notes] => Array
(
[title] => Testing 1
[content] => some text 1
[created] => 2015-01-04 15:39:34
[tags] => Array
(
[title] => hello
[tagFoo] => foo
)
)
)
[1] => Array
(
[notes] => Array
(
[title] => Testing 2
[content] => some text 2
[created] => 2015-01-04 15:39:34
[tags] => Array
(
[title] => hello
[tagBar] => bar
)
)
)
)
答案 2 :(得分:0)
一种可能性是:
foreach($tags as $key => $note){
$note["created"] = $created[$key]; //if created is an array
$note["created"] = $created; //if created is a string
}