2014-02-16 126 views
0

我有一个名为array3的数组;我想遍历这个数组的每个元素,并根据这些值创建单个数组。我试过这个;从另一个阵列的元素创建数组

$array4 = array(); 
$array5= array(); 
foreach ($array3 as $value) { 
    $array4[] = array('v' => count(search($rows, 'domaindesc', $value))); 
    $array4[] = array('v' => $value); 
    $array5[] = array('c' => $array4); 

} 

搜索功能正在返回另一个数组中的加工元素的数量。我从上面的代码得到的输出是

Array 
(
    [0] => Array 
     (
      [c] => Array 
       (
        [0] => Array 
         (
          [v] => 5 
         ) 

        [1] => Array 
         (
          [v] => Commercial 
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [c] => Array 
       (
        [0] => Array 
         (
          [v] => 5 
         ) 

        [1] => Array 
         (
          [v] => Commercial 
         ) 

        [2] => Array 
         (
          [v] => 1 
         ) 

        [3] => Array 
         (
          [v] => Infrastructure 
         ) 

       ) 

     ) 

) 

我想要得到的是;

Array 
(
    [0] => Array 
     (
      [c] => Array 
       (
        [0] => Array 
         (
          [v] => 5 
         ) 

        [1] => Array 
         (
          [v] => Commercial 
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [c] => Array 
       (     

        [0] => Array 
         (
          [v] => 1 
         ) 

        [1] => Array 
         (
          [v] => Infrastructure 
         ) 

       ) 

     ) 

) 

任何帮助表示赞赏

+1

做你自己的忙,使用数组名称,意味着什么。 – 2014-02-16 02:54:47

回答

0

每次迭代时,要添加到$ array4并把该到$ array5

尝试重新申报$ array4每次迭代:

$array5 = array(); 
foreach ($array3 as $value) { 
    $array4 = array(); 
    $array4[] = array('v' => count(search($rows, 'domaindesc', $value))); 
    $array4[] = array('v' => $value); 
    $array5[] = array('c' => $array4); 

} 

编辑:对于风格,我个人会这样写:

$array5 = array(); 
foreach ($array3 as $value) { 
    $array5[] = array('c' => array(
     array('v' => count(search($rows, 'domaindesc', $value))), 
     array('v' => $value), 
    )); 
} 

注意数组声明中的尾随逗号是有意的,这样可以使其他开发人员更容易在需要时向声明中添加更多项目。 PHP允许这一点,我利用它。编辑2:如果你不担心你的PHP代码不能在5.4之前的PHP版本上工作,我更喜欢使用方括号来声明一个数组,而不是使用数组()。它最终看起来更清洁:

$array5 = []; 
foreach ($array3 as $value) { 
    $array5[] = ['c' => [ 
     ['v' => count(search($rows, 'domaindesc', $value))], 
     ['v' => $value], 
    ]]; 
} 
相关问题