我在客户端网站上收到此错误消息:
警告:array_combine():这两个参数在945行的/home/siennahomes/public_html/wp-content/themes/realhomes-child/property-details/property-floorplan.php中应该有相同数量的元素
第945行是:
$details = array_combine($fplan2_dimensions_titles, $fplan2_dimensions_values);
完整的php块是:
<?php
if (!empty($fplan2_dimensions_titles)){
$fplan2_dimensions_values = get_post_meta($post->ID, 'REAL_HOMES_fplan2_dimensions_values', true);
if (!empty($fplan2_dimensions_values)){
$details = array_combine($fplan2_dimensions_titles, $fplan2_dimensions_values);
echo '<ul class="additional-details clearfix">';
foreach ($details as $title => $value){
?>
我仍然习惯使用PHP,所以我看过的任何地方对我都没有意义。所以这就是我要问的原因,我正在使用的代码与我在这个主题上找到的大多数例子的设置不同。
页面的其他部分使用完全相同的编码,它仍然可以正常工作,这只是一个特定的部分,但我不明白。
另一方面,我也遇到了这个错误:
警告:在第948行的/home/siennahomes/public_html/wp-content/themes/realhomes-child/property-details/property-floorplan.php中为foreach()提供的参数无效
948在上面的代码中就是这部分
foreach($details as $title => $value ){
先谢谢。
答案 0 :(得分:1)
问题是你的数组不等于。应该具有相同的长度,因为array_combine将执行此操作:
$carsMake = array('Ford','Mercedes','BMW');
$carsModel = array('Focus','180C','320');
所以当我们调用array_combine()函数
时$carsMakeModel = array_combine($carsMake,$carsModel)
print_r($carsMakeModel)
将输出:
Array([Ford] => Focus,[Mercedes] => 180C, [BMW] => 320)
是关闭PHP警告的解决方案,但我不建议这样做。查看此数组不等于的原因,并在调用此函数之前检查数组是否等于。
if(count($carsMake) == count($carsModel){
array_combine($carsMake,$carsModel);
}
答案 1 :(得分:1)
数组值的大小必须相等,因为您将使用其他数组作为键,将另一个数组用作值。
例如
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
如果您的某个数组中的某个数据与其他数组不相等,则会为另一个数据创建一个empy值。
答案 2 :(得分:0)