2017-01-12 25 views
0

我有水果信息数组。一个例子:PHP,在一个循环中,使某些数组值到单个数组

Array 
(" 
    [0] => Array 
        (" 
            [Id] => 58759d25bb3aa9.09061697 
            [Name] => Gala 
            [Description] => '' 
            [Note] => '' 

        ) " 

       [1] => Array 
        (" 
            [Id] => 587589476029e8.93893728 
            [Name] => Admiral 
            [Description] => '' 
            [Note] => '' 

        ) " 
   [2] => Array 
        (" 
            [Id] => 5875b2a1865f50.73423631 
            [Name] => Elstar 
            [Description] => '' 
            [Note] => '' 

        ) " 
) " 
Array 
(" 
    [0] => Array 
        (" 
            [Id] => 5875b2a1865f50.73423631 
            [Name] => Bing-Cherries 
            [Description] => '' 
            [Note] => '' 

        ) " 

       [1] => Array 
        (" 
            [Id] => 5875b2c6210de4.91470020 
            [Name] => Van-Cherries 
            [Description] => '' 
            [Note] => '' 

        ) " 
   [2] => Array 
        (" 
            [Id] => 5875b911eeddb1.20644994 
            [Name] => Reiner-Cherries 
            [Description] => '' 
            [Note] => '' 

        ) " 
) " 

在一个循环中,我可以访问该阵列型像苹果,樱桃等。每个阵列具有一个唯一的号码作为一种类型。樱桃的例子是($sConfigType == 1)

现在我想,如果水果“樱桃”来使单个数组的数组值。

例如:

Array 
(
    [0] => Array 
     (
      [id] => 58759d25bb3aa9.09061697 
      [name] => Gala 
      [description] => '' 
      [note] => '' 

     ) 

     [1] => Array 
     (
      [id] => 587589476029e8.93893728 
      [name] => Admiral 
      [description] => '' 
      [note] => '' 

     ) 
    [2] => Array 
     (
      [id] => 5875b2a1865f50.73423631 
      [name] => Elstar 
      [description] => '' 
      [note] => '' 

     ) 
) 
Array 
(
    [0] => Array 
     (
      [id] => 5875b2a1865f50.73423631 
      [name] => Bing-Cherries 
      [description] => '' 
      [note] => '' 

     ) 
) 
Array (Cherries) 
(
     [0] => Array 
     (
      [id] => 5875b2c6210de4.91470020 
      [name] => Van-Cherries 
      [description] => '' 
      [note] => '' 

     ) 
) 
Array (Cherries) 
(
    [0] => Array 
     (
      [id] => 5875b911eeddb1.20644994 
      [name] => Reiner-Cherries 
      [description] => '' 
      [note] => '' 

     ) 
) 

所以我试图实现它,可惜的是不工作:

protected function _splitFruitArray($sConfig) 
{ 
    if (is_array($sConfig) || is_object($sConfig)) { 

     $sConfigType = $sConfig->type; 

     $sOther = array(); 

     foreach ($sConfig as $sKey => $sVal) { 
      if ($sConfigType == 1) { // if fruit is cherries split values to single array 
       foreach ($sVal as $iKey => $iVal) { 
        $arr[$iKey] = $iVal; 
       } 
      } else { 
       $sOther[$sKey] = $sVal; 
      } 
      array_push($sOther, $arr); 
     } 
     $sConfig = $sOther; 
    } 
    print_r($sConfig); 

    return $sConfig; 
} 

回答

0

试试这个..

if (is_array($sConfig) || is_object($sConfig)) { 
    $sOther = array(); 
    foreach ($sConfig as $sKey => $sVal) { 
     if ($sConfigType == 1) { // if fruit is cherries split values to single array 
      is_array($sVal){ 
      foreach ($sVal as $iKey => $iVal) { 
       $arr[$iKey] = $iVal; 
      } 
      } 

     } else { 
      $sOther[$sKey] = $sVal; 
     } 
     array_push($sOther, $arr); 
    } 
    print_r($sOther); 
    //print_r($arr); 
for(i=0;i<count($arr);i++){ 
    ${"newArray".$i} = $arr[$i]; 
     } 
    //print_r($newArray0); 
    //print_r($newArray1); 
    //print_r($newArray2); 
    return $sOther; 
} 
+0

不幸的是不起作用。这些键不包含数组类型信息,请参阅上面的我的代码。 –

+0

echo sConfigType的值是多少? –

+0

唯一整数,($ sConfigType == 1)是樱桃。 –