如何检查值是否存在并以与数组中相同的顺序打印?
How to check if value exists and print it in the same order as in array?
我正在尝试使用 jQuery UI 制作一个可排序的列表。在后端,一切似乎都运行良好。数组发送正确,但我在前端显示正确的列表顺序时遇到一些问题。
这是我的数组的样子。 print_r($results):
Array
(
[0] => Array
(
[0] => "B"
[1] => "A"
[3] => "E"
)
)
我正在检查数组中是否存在特定值:
<?php
$letters = $myarray;
preg_match_all('/".*?"/', $letters, $results);
if(in_array("A", $results, true)) { ?>
<span><i class="icon"></i>Letter A exists</span>
<?php }
if(in_array("B", $results, true)) { ?>
<span><i class="icon"></i>Letter B exists</span>
<?php }
if(in_array("C", $results, true)) { ?>
<span><i class="icon"></i>Letter C exists</span>
<?php }
if(in_array("D", $results, true)) { ?>
<span><i class="icon"></i>Letter D exists</span>
<?php }
if(in_array("E", $results, true)) { ?>
<span><i class="icon"></i>Letter E exists</span>
<?php } ?>
...
之后我想以与数组中相同的顺序显示结果:
<span><i class="icon"></i>Letter B exists</span>
<span><i class="icon"></i>Letter A exists</span>
<span><i class="icon"></i>Letter E exists</span>
我怎样才能以正确的方式做到这一点?
只需循环 $results
:
foreach ($results[0] as $letter){
printf('<span><i class="icon"></i>Letter %s exists</span>', $letter);
}
这将以正确的顺序输出您的 html 个节点。
您可能想使用 PHP 中的 array_intersect() 函数。为此,您必须制作一个字母数组,然后根据该新数组检查 $results。这是一个例子:
<?php
$results = [['B', 'A', 'E']];
$matches = array_intersect($results[0], ['A','B','C','D','E']);
foreach($matches as $match){
echo "<span><i class='icon'></i>Letter $match exists</span><br>";
}
检查下面的代码,修改您的代码并给出结果。
<?php
$myarray = array("0" => array("0" => "B","1" => "A","3" => "E"));
print_r($myarray[0]);
$letters = $myarray[0];
if(in_array("A", $letters, true)) {
echo '<span><i class="icon"></i>Letter A exists</span>';
}
?>
我正在尝试使用 jQuery UI 制作一个可排序的列表。在后端,一切似乎都运行良好。数组发送正确,但我在前端显示正确的列表顺序时遇到一些问题。
这是我的数组的样子。 print_r($results):
Array
(
[0] => Array
(
[0] => "B"
[1] => "A"
[3] => "E"
)
)
我正在检查数组中是否存在特定值:
<?php
$letters = $myarray;
preg_match_all('/".*?"/', $letters, $results);
if(in_array("A", $results, true)) { ?>
<span><i class="icon"></i>Letter A exists</span>
<?php }
if(in_array("B", $results, true)) { ?>
<span><i class="icon"></i>Letter B exists</span>
<?php }
if(in_array("C", $results, true)) { ?>
<span><i class="icon"></i>Letter C exists</span>
<?php }
if(in_array("D", $results, true)) { ?>
<span><i class="icon"></i>Letter D exists</span>
<?php }
if(in_array("E", $results, true)) { ?>
<span><i class="icon"></i>Letter E exists</span>
<?php } ?>
...
之后我想以与数组中相同的顺序显示结果:
<span><i class="icon"></i>Letter B exists</span>
<span><i class="icon"></i>Letter A exists</span>
<span><i class="icon"></i>Letter E exists</span>
我怎样才能以正确的方式做到这一点?
只需循环 $results
:
foreach ($results[0] as $letter){
printf('<span><i class="icon"></i>Letter %s exists</span>', $letter);
}
这将以正确的顺序输出您的 html 个节点。
您可能想使用 PHP 中的 array_intersect() 函数。为此,您必须制作一个字母数组,然后根据该新数组检查 $results。这是一个例子:
<?php
$results = [['B', 'A', 'E']];
$matches = array_intersect($results[0], ['A','B','C','D','E']);
foreach($matches as $match){
echo "<span><i class='icon'></i>Letter $match exists</span><br>";
}
检查下面的代码,修改您的代码并给出结果。
<?php
$myarray = array("0" => array("0" => "B","1" => "A","3" => "E"));
print_r($myarray[0]);
$letters = $myarray[0];
if(in_array("A", $letters, true)) {
echo '<span><i class="icon"></i>Letter A exists</span>';
}
?>