You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查数组中值是否存在并按原数组顺序输出?

解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:22:13