2015-07-20 35 views
0

拆分数据我有数组什么样子优化从阵列中的PHP 5.2

array(
[0]array(
    [asoc_key1]=>value, 
    [asoc_key2]=>value), 
[1]array(
    [asoc_key1]=>value, 
    [asoc_key2]=>value), 
.... 
) 

我需要从asoc_key2分裂独特asoc_key1值到一个数组,唯一值到第二位。我的代码如下所示:

foreach ($bloggersInfo as $bloggerInfo) { 
     $categoryIdArray[] = $bloggerInfo['category_id']; 
     $mozdaArray[] = $bloggerInfo['mozda']; 
    } 
    $categoryIdArray = array_values(array_unique($categoryIdArray)); 
    $mozdaArray = array_values(array_unique($mozdaArray)); 

是否有方法可以优化此代码?

+0

安置自己的原始数组与预期输出沿,并从你的代码看来你需要像'array_unqiue(array_column($阵列,“CATEGORY_ID”))' –

+0

同时,我想补充一点,PHP生成版本为5.2 –

+0

发布'$ categoryIdArray'和'$ mozdaArray'的值 –

回答

0

尝试使用array_column函数。您的解决方案可能是

$categoryIdArray = array_unqiue(array_column($bloggersInfo,'category_id')); 
$mozdaArray = array_unqiue(array_column($bloggersInfo,'mozda')); 
if (! function_exists('array_column')) { 
    function array_column(array $input, $columnKey) { 
     $array = array(); 
     foreach ($input as $value) { 
      $array[] = $value[$columnKey]; 
     } 
     return $array; 
    } 
} 
+0

生产PHP版本是5.2,所以这是有点不可能使用您的解决方案,但谢谢。 –

+0

如果'array_column'不起作用,那么你可以编写自己的函数尝试编辑的解决方案。 –

+0

用php编写array_column函数在这种情况下不是性能解决方案。由于这篇文章中的解决方案需要更多的时间和内存使用。用于PHP 5.2的 –