php - 当我使用 preg_match_all php 时,array_unique() 不起作用
问题描述
我的代码是:
$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 和不使用它没有区别。
解决方案
因为 preg match 输出就像
Array
(
[0] => Array
(
[0] => ain
[1] => AIN
[2] => ain
[3] => ain
)
)
所以在 unique 中使用零索引
$output_array = array_unique($output_array[0]);
推荐阅读
- bartender - 调酒师错误:“Web 服务”需要“企业自动化”版本或更高版本才能运行
- javascript - Wordpress 可以读取 javascript 文件但不执行使用的特定功能
- python - python docker sdk如何在containers.run中运行多个命令
- testing - 使用图像比较测试 Web 应用程序是一种好方法吗?
- swift - 通过导航控制器展开 segue
- twilio - Twilio 来电 Twiml 不等待收集
- node.js - 如何在从 nodejs.org 下载的 nodejs 文件夹之外运行“node”和“npm”命令
- java - 我可以将 Spring @bean 定义为 @Repository 或 @Service 吗?
- perceptron - 使用 SPSS 的 MLP-NN 衡量排名重要性的指标是什么?(在 SPSS 中有类似 Matthew 的系数吗?)
- vue.js - 无法访问嵌套对象中的对象数据