2015-10-26 21 views
0

我需要有关如何在笨PHP笨解析阵列([0] => TEST2 [1] => TEST1)

阵列([0] => TEST0 [1] => TEST1解析此数组的帮助)

的笨的用户指南,我发现这个在

{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]到[标题,标题,标题,标题]

回答

0

你可以做一个简单的重映射功能:

$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" 
    } 
} 
+1

谢谢,这是完美的作品 – Vincen

0

第一个参数包含视图文件(在本实施例 文件将被称为blog_template.php)的名称,并且第二 参数包含一个关联ARR可以在 模板中替换数据。

$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会用数字键把更多的元素导出到这个数组中,这个代码可能会被破坏。你可以检查并测试它。

相关问题