警告:array_combine()错误消息

时间:2016-05-14 07:35:18

标签: php arrays

我在客户端网站上收到此错误消息:

  

警告: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 ){

先谢谢。

3 个答案:

答案 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)

<强>错误/异常

如果键和值中的元素数不匹配,则抛出E_WARNING。

Look this