6
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 但它不起作用。谢谢。

4

7 回答 7

5

让我们将您的数组称为 $array1 到 $array4。这是解决方案:

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

编辑:

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

于 2012-11-28T09:18:06.743 回答
2

只需执行一个循环并仅保存您唯一的 enries:

<?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
)
于 2012-11-28T09:14:36.243 回答
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)
于 2012-11-28T09:20:15.280 回答
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"
}
于 2012-11-28T09:20:59.973 回答
0

使用array_uniquewith的组合array_merge

$cleanArray = array_merge($array1, $array2, ... )
$cleanArray = array_unique($cleanArray);
于 2012-11-28T09:21:29.053 回答
0

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

$cleanedarray = array_values(array_unique(array_merge($array1, $array2, $array3, $array4)));
于 2012-11-28T09:24:20.080 回答
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>";
于 2012-11-28T10:47:01.937 回答