php - 将 foreach 与可能不是数组的变量一起使用

标签 php arrays foreach

所以,这是我的情况:

我将一些输入存储在一个变量中 ($keywords)。 这个变量可以是一个字符串(=1 个关键字)——比如 "banana",也可以是一个数组(=多个关键字)——比如 array ("banana","apple"“芒果”)

这是我使用它的方式:

foreach ($keywords as $keyword)
{
    // do sth with $keyword
}

$keyword 是一个数组 时,这工作正常,但如果不是,我就会出错。 (很明显)

什么是最有效的解决方法,以避免错误,同时保持我的 foreach 结构不变?


这是我想到的(放在循环之前),但我不太喜欢它:

if (count($keywords)==1) $keywords = array($keywords);

更新:伙计们,我知道 is_array。我的观点是尽可能优雅地完成它,不要添加代码块或使用 switchif/else 语句等造成困惑.

最佳答案

简单地将变量转换为数组:

$keywords = (array) $keywords;

如果变量是一个数组,则不会发生任何事情,否则它将被转换为一个数组: 所以 1 将是 array(1)'keyword' 将是 array('keyword')

关于php - 将 foreach 与可能不是数组的变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759393/

相关文章:

javascript - 如何聚合二维数组 Promise?

javascript - Angular.forEach 不返回对象中的最后一项

arrays - MongoDB/NodeJS : Looping through query parameter

asynchronous - 在 foreach 循环中,等待不起作用

php - $POST_ 从多个复选框返回数组

php - Yii2:在 ActiveRecord 的 with() 中使用 realtion 的范围

ios - 使用 NSPredicate 在一次搜索 iOS swift 中搜索多个单词

arrays - Gnuplot:如何绘制 bash 数组而不将其转储到文件中

php - 如何使用 GCM 在 php 中向数百万 Android 设备发送通知

php - 避免除以零错误 Laravel 框架