PHP:what';使用数组函数是foreach还是hustle更好?
在以下两个代码段之间,哪一个被认为更好?这个循环本身会运行几十次,每次循环20次,最多,通常只有2-3次PHP:what';使用数组函数是foreach还是hustle更好?,php,arrays,Php,Arrays,在以下两个代码段之间,哪一个被认为更好?这个循环本身会运行几十次,每次循环20次,最多,通常只有2-3次 foreach (glob("$directory/*.yml") as $filename) { $files[$filename] = $provider; } 或 第一个更清晰,不会生成然后立即丢弃额外的数组。但关键是它更简单,也更容易理解——当稍后再次访问此代码时,读者将立即知道它的功能 为了更好地深入了解php,我建议您坚持使用array\u combine或您的arra
foreach (glob("$directory/*.yml") as $filename) {
$files[$filename] = $provider;
}
或
第一个更清晰,不会生成然后立即丢弃额外的数组。但关键是它更简单,也更容易理解——当稍后再次访问此代码时,读者将立即知道它的功能 为了更好地深入了解php,我建议您坚持使用
array\u combine
或您的array\u fill
函数。
然而,在我看来,您的第一种方法比第二种方法简单得多,可读性强得多
此外,在实际应用程序中,如果您使用第二种方法,例如php版本不支持该函数,您可能会遇到一些问题
请注意,如果$filenames
是空数组,您的array\u combine
将发出警告。从PHP5.3.2开始,array\u combine(array(),array())
抛出警告并返回FALSE,而不是返回array()
至于
数组填充
,它最适合您的场景。如果您碰巧更改到在类对象上使用array\u fill
的任何场景,它会把一切搞糟。如果您使用foreach
大量(即大约150000个)数组,那么它总是比所有那些数组函数
好,否则只需使用数组函数空array\u combine()
问题修复是在PHP 5.4.0中发布的,请参阅。PHP5.4本身现在已经过时,不再受支持。这在您应该运行的任何PHP版本上都不是问题。
$filenames = glob("$directory/*.yml");
$files = array_combine($filenames, array_fill(0, count($filenames), $provider));