如何检查数组中值是否存在并按原数组顺序输出?
解决jQuery UI可排序列表前端顺序输出问题
嘿,我明白你的问题啦——你现在的代码是按A→B→C→D→E的固定顺序逐个检查字母是否存在,所以不管后端传回来的数组顺序是什么,前端输出的顺序都是固定的,这就和你想要的按原数组顺序输出的需求不符了。
咱们换个思路,直接遍历后端返回的数组元素就可以轻松解决这个问题,具体步骤如下:
1. 先理清你的数组结构
从你给出的print_r($results)输出可以看到,这是一个二维数组:
Array ( [0] => Array ( [0] => "B" [1] => "A" [3] => "E" ) )
真正存储排序后字母的是$results[0]这个子数组,我们先把它单独拿出来。
2. 遍历数组输出对应内容
不要逐个判断A、B、C,而是直接循环遍历这个子数组里的每个元素,然后输出对应的<span>标签。另外注意你的数组元素是带双引号的(比如"B"),需要先去掉引号再输出:
<?php // 提取出排序后的字母数组 $sortedLetters = $results[0]; // 遍历每个字母 foreach ($sortedLetters as $letter) { // 去掉字符串前后的双引号 $cleanLetter = trim($letter, '"'); ?> <span><i class="icon"></i>Letter <?php echo $cleanLetter; ?> exists</span> <?php } ?>
这样写之后,后端数组是什么顺序,前端输出的<span>就会是什么顺序,完全符合你想要的效果:
<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>
额外补充(如果需要显示不存在的字母)
如果你还需要显示C、D这类不存在的字母,可以先定义所有可能的字母列表,然后先遍历排序后的数组输出存在的,再遍历剩余字母输出,但根据你的需求,上面的代码已经足够解决核心问题啦。
内容的提问来源于stack exchange,提问作者Frostbourn
相关产品推荐
相关产品推荐

