将PHP阵列清​​理为一个

时间:2012-11-28 09:11:45

标签: php arrays

array(1) {
  [0] => string(18) "AnotherTestSnippet"
}
array(1) {
  [0] => string(17) "Test Code Snippet"
}
array(1) {
  [0] => string(18) "AnotherTestSnippet"
}
array(1) {
  [0] => string(17) "Test Code Snippet"
}

如何使用PHP将上述数组转换为此格式?

array("AnotherTestSnippet","Test Code Snippet")

即清理并删除重复项。我尝试过array_unique和in_array,但它不起作用。感谢。

7 个答案:

答案 0 :(得分:5)

让我们通过$ array4调用你的数组$ array1。这是解决方案:

$cleanArray = array_unique(array_merge($array1, $array2, $array3, $array4));

编辑:

现在我知道你是从单个多维数组开始的,这不是正确的答案。正确的答案是Dainis Abols给出的for循环。

答案 1 :(得分:2)

只需循环并仅保存您的唯一条目:

<?php
$array = array (
    array( "AnotherTestSnippet" ),
    array( "Test Code Snippet" ),
    array( "AnotherTestSnippet" ),
    array( "Test Code Snippet" )
);

$new_array = array();

foreach ( $array as $value )
{
    if( !in_array( $value[0], $new_array) ) $new_array[] = $value[0];
}

输出:

Array
(
    [0] => AnotherTestSnippet
    [1] => Test Code Snippet
)

答案 2 :(得分:0)

读取你的评论var_dump输出是错误的。您没有四个单独的数组,而是一个包含这些数组的多维数组。

您可以使用这样的闭包使用array_walk_recursive遍历数组:

$input = array(
    array('AnotherTestSnippet'),
    array('Test Code Snippet'),
    array('AnotherTestSnippet'),
    array('Test Code Snippet')
);

$result = array();
array_walk_recursive($input, function($a) use (&$result) {
    $result[] = $a;
});

$result = array_unique($result);
var_dump($result);

这回应:

array (size=2)
  0 => string 'AnotherTestSnippet' (length=18)
  1 => string 'Test Code Snippet' (length=17)

答案 3 :(得分:0)

<?php
$a = array("AnotherTestSnippet"); 
$b = array("Test Code Snippet"); 
$c = array("AnotherTestSnippet"); 
$d = array("Test Code Snippet");

$e = array_unique( array_merge( $a, $b, $c, $d ) ); 
var_dump( $e );

给出:

array(2) {
  [0]=>
  string(18) "AnotherTestSnippet"
  [1]=>
  string(17) "Test Code Snippet"
}

答案 4 :(得分:0)

使用array_uniquearray_merge

的组合
$cleanArray = array_merge($array1, $array2, ... )
$cleanArray = array_unique($cleanArray);

答案 5 :(得分:0)

使用以下内容在值和键中获取已清理的数组:

$cleanedarray = array_values(array_unique(array_merge($array1, $array2, $array3, $array4)));

答案 6 :(得分:0)

请试试这个

<?php
 $a[]=array ( 0 => 'AnotherTestSnippet', );
 $a[]=array ( 0 => 'Test Code Snippet', );
 $a[]=array ( 0 => 'AnotherTestSnippet', );
 $a[]=array ( 0 => 'Test Code Snippet', );

foreach($a as $key=>$value)
{
    foreach($value as $key1=>$value1)
    {
        $new_array[]=$value1 ;

    }

}
echo "<pre>";
print_r($new_array);
echo "</pre>";