我需要帮助如何解析这个数组在codeigniter
array ([0] => test0 [1] => test1)
在CodeIgniter用户指南中我发现了这个:
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
如果数组是:
$data = array(
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
'blog_entries' => array(
array('title' => 'Title 1', 'body' => 'Body 1'),
array('title' => 'Title 2', 'body' => 'Body 2'),
array('title' => 'Title 3', 'body' => 'Body 3'),
array('title' => 'Title 4', 'body' => 'Body 4'),
array('title' => 'Title 5', 'body' => 'Body 5')
));
http://www.codeigniter.com/user_guide/libraries/parser.html?highlight=parsing 但是我从一个API接收这样的数组:
$data = array(
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
'blog_entries' => array(
array('0' => 'Title 1', 'body' => 'Body 1'),
array('1' => 'Title 2', 'body' => 'Body 2'),
array('2' => 'Title 3', 'body' => 'Body 3'),
array('3' => 'Title 4', 'body' => 'Body 4'),
array('4' => 'Title 5', 'body' => 'Body 5')
));
我如何解析它?或者如何将数字[0,1,2,3]转换为[title,title,title,title]
你可以做一个简单的重新映射函数:
$out = array();
foreach ($blog_entries as $index => $array) {
$out[] = array('title' => $array[$index], 'body' => $array['body']);
}
样本输出:array(5) {
[0]=>
array(2) {
["title"]=>
string(7) "Title 1"
["body"]=>
string(6) "Body 1"
}
[1]=>
array(2) {
["title"]=>
string(7) "Title 2"
["body"]=>
string(6) "Body 2"
}
[2]=>
array(2) {
["title"]=>
string(7) "Title 3"
["body"]=>
string(6) "Body 3"
}
[3]=>
array(2) {
["title"]=>
string(7) "Title 4"
["body"]=>
string(6) "Body 4"
}
[4]=>
array(2) {
["title"]=>
string(7) "Title 5"
["body"]=>
string(6) "Body 5"
}
}
第一个参数包含视图文件的名称例如,该文件将被称为blog_template.php),第二个参数中要替换的数据的关联数组模板。
$data = array(
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
'blog_entries' => array(
array('0' => 'Title 1', 'body' => 'Body 1'),
array('1' => 'Title 2', 'body' => 'Body 2'),
array('2' => 'Title 3', 'body' => 'Body 3'),
array('3' => 'Title 4', 'body' => 'Body 4'),
array('4' => 'Title 5', 'body' => 'Body 5')
));
foreach ($data['blog_entries'] as &$arr)
{
foreach ($arr as $k => $v)
{
if (is_numeric($k))
{
$arr['title'] = $v;
unset($arr[$k]);
}
}
$arr = array_reverse($arr);
}
echo '<pre>', var_dump($data);exit;
但是你应该意识到$data
数组结构的最终变化。如果你的api要导出一个带有数字键的元素到那个数组,这段代码可能会被破坏。你可以检查和测试它