-2

現在のコード --

<?php
$arrunsort = array('ab','ad','ar','cd','cb','sc','si','wa','za');
$prevLabel = array();
$currLabelarr = array();
foreach( $arrunsort as $sortelem )
{
    $currLabel = substr($sortelem, 0, 1);
    if( $currLabel !== $prevLabel )
    {
        $currLabelarr[] = $currLabel;
        $prevLabel[] = $currLabel;
    }
}
echo "<pre>";
print_r($currLabelarr);

出力-

Array
(
    [0] => a
    [1] => a
    [2] => a
    [3] => c
    [4] => c
    [5] => s
    [6] => s
    [7] => w
    [8] => z
)

コードからの私の期待される出力 -

Array
(
    [0] => a
    [1] => c
    [2] => s
    [3] => w
    [4] => z
)

この配列を使用できることはわかってarray_unique()いますが、array_unique からの出力があまり良くないように見えるため、上記のコードからどのように管理すればよいでしょうか。

からの出力print_r(array_unique($currLabelarr));

Array
(
    [0] => a
    [3] => c
    [5] => s
    [7] => w
    [8] => z
)
4

3 に答える 3

2

array_valuesを使用する

print_r(array_values(array_unique($currLabelarr)));

出力

Array
(
[0] => a
[1] => c
[2] => s
[3] => w
[4] => z
)
于 2013-06-27T11:30:46.920 に答える
0

単純

print_r(array_unique($currLabelarr));

array_values を適用して、値ベースの一意の配列を出力できます

print_r(array_values(array_unique($currLabelarr)));
于 2013-06-27T11:29:21.807 に答える
0

変更するだけ --

$prevLabel[] = $currLabel;

$prevLabel = $currLabel;

出力 -

Array
(
    [0] => a
    [1] => c
    [2] => s
    [3] => w
    [4] => z
)
于 2013-06-27T11:30:35.200 に答える