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

ループを実行して、固有のエントリのみを保存します。

<?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

これを試してください

<?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 に答える
0

コメントを読んで var_dump 出力が間違っています。4 つの個別の配列はありませんが、これらの配列を含む 1 つの多次元配列があります。

次のようなクロージャーを使用して、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_unique​​し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 に答える