如果我使用带有数字的数组,我将如何改变内部for循环中的某些元素?
如
$decryptFields[0] = '1';
$decryptFields[1] = '3';
if($z) == ANY OF THOSE NUMBERS IN THE ARRAY DO SOMETHING.
$x[$i][$z]
因此,如果内部for循环包含这些数字中的任何一个,则会发生一些事情例如,我可能会将文本加粗
foreach($decryptFields as $dfield) {
echo $dfield;
}
for($i = 0; $i< 10; $i++) {
for($z = 0; $z < $columnLength; $z++) {
echo $x[$i][$z];
}
}
}
你的问题不是很清楚,但我会尽力回答。
如果你想在$z等于$decryptFields数组中的任何一个值时"做点什么",你可以简单地使用:
if(in_array($z, $decryptFields)){ /*do something*/}
编辑:$z似乎也是一个值数组。
在这种情况下,使用:
$intersection = array_intersect($z, $decryptFields);
foreach($intersection as $key=>$value){
echo "<b>$value</b>";
}
可能是…
for ($i = 0; $i < 10; $i++) {
// Build a string
$str = '';
for ($z = 0; $z < $columnLength; $z++) {
$str .= $x[$i][$z];
}
// If any of the elements of $decryptFields are present in the string, wrap
// it in <span class='bold'></span>
foreach ($decryptFields as $dfield) {
if (strpos($str, $dfield) !== FALSE) {
$str = "<span class='bold'>$str</span>";
break;
}
}
// Echo the result
echo $str;
}
如果您需要检查多个项是否与某个数组中的任何项匹配,最好的解决方案是为数组建立索引:
foreach ($decryptFields as $key => $value) $decryptIndex[$value] = $key;
并稍后使用该索引:
if (isset($decryptIndex[$x[$i][$z]])) {
// Do something
}
如果你需要得到$decryptFields数组中匹配元素的索引,使用$decryptIndex[$x[$i][$z]]
这是最快的方法,因为PHP中的关联数组实现非常快。