【发布时间】:2016-12-04 13:39:53
【问题描述】:
我有一个 php 数组,其中包含以下格式的数据。可能永远只有唯一的值和一个 NULL 值,这需要与其他值进行负匹配。
$colors = array_unique([
NULL,
"red",
"black"
]);
我想把它转换成以下:
$converted = [
"NOT LIKE '%red%' AND NOT LIKE '%black%'",
"LIKE '%red%' AND NOT LIKE '%black%'",
"LIKE '%black%' AND NOT LIKE '%red%'"
];
我怎样才能做到这一点?
我无法理解如何在 php 中完成此操作,我尝试了不同的 foreach 循环与数组的组合,但我无法动态执行此操作,因此第一个 $colour 数组可以扩展值但它保持不变原理(见同结构扩展数据示例2)。
示例 2
$colors = array_unique([
NULL,
"red",
"black",
"purple",
"orange"
]);
$converted = [
"NOT LIKE '%red%' AND NOT LIKE '%black%' AND NOT LIKE '%purple%' AND NOT LIKE '%orange%'",
"LIKE '%red%' AND NOT LIKE '%black%' AND NOT LIKE '%purple%' AND NOT LIKE '%orange%'",
"LIKE '%black%' AND NOT LIKE '%purple%' AND NOT LIKE '%orange%' AND NOT LIKE '%red%'",
"LIKE '%purple%' AND NOT LIKE '%orange%' AND NOT LIKE '%red%' AND NOT LIKE '%black%'",
"LIKE '%orange%' AND NOT LIKE '%red%' AND NOT LIKE '%black%' AND NOT LIKE '%purple%'",
];
【问题讨论】: