array_unique() 在我使用 preg_match_all php 时不工作
array_unique() not working while I use preg_match_all php
我的代码是:
$a = <<<'EOD'
function makeItBIG($a_lot_of_names) {
foreach($a_lot_of_names as $the_simpsons) {
$BIG[] = strtoupper($the_simpsons);
}
return $BIG;
}
$a_lot_of_names = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(makeItBIG($a_lot_of_names));
EOD;
$input_lines = $a;
preg_match_all('/$\w+/', $input_lines, $output_array);
$output_array = array_unique($output_array);
$output_array = array_values($output_array);
echo json_encode($output_array);
为什么输出还是重复的?
输出是:
[["$a_lot_of_names","$a_lot_of_names","$the_simpsons","$BIG","$the_simpsons","$BIG","$a_lot_of_names","$a_lot_of_names"]]
使用 array_unique 和不使用没有区别。
因为预匹配输出就像
Array
(
[0] => Array
(
[0] => ain
[1] => AIN
[2] => ain
[3] => ain
)
)
所以在 unique
中使用零索引
$output_array = array_unique($output_array[0]);
我的代码是:
$a = <<<'EOD'
function makeItBIG($a_lot_of_names) {
foreach($a_lot_of_names as $the_simpsons) {
$BIG[] = strtoupper($the_simpsons);
}
return $BIG;
}
$a_lot_of_names = ['Homer', 'Marge', 'Bart', 'Maggy', 'Lisa'];
var_dump(makeItBIG($a_lot_of_names));
EOD;
$input_lines = $a;
preg_match_all('/$\w+/', $input_lines, $output_array);
$output_array = array_unique($output_array);
$output_array = array_values($output_array);
echo json_encode($output_array);
为什么输出还是重复的? 输出是:
[["$a_lot_of_names","$a_lot_of_names","$the_simpsons","$BIG","$the_simpsons","$BIG","$a_lot_of_names","$a_lot_of_names"]]
使用 array_unique 和不使用没有区别。
因为预匹配输出就像
Array
(
[0] => Array
(
[0] => ain
[1] => AIN
[2] => ain
[3] => ain
)
)
所以在 unique
中使用零索引$output_array = array_unique($output_array[0]);