【问题标题】:Error "expecting array" with PHP array_flip() functionPHP array_flip() 函数出现“期望数组”错误
【发布时间】:2012-06-06 08:51:51
【问题描述】:

我最近更新了我工作的服务器。我有一个错误:

“警告:array_flip() 期望参数 1 为数组,在...中给出 null”

有人知道怎么解决吗?

这是一段PHP代码:

function redirectWrongDep($url) { 
    $deps = @getDepsByIdUrl($url); 
    $depsFlip = array_flip($deps); 
    if ($_GET['dep'] && !in_array($_GET['dep'], $depsFlip)) { header('Location:'.URL); 
        exit(); 
    } 
} 
function getDepsByIdUrl($url) { 
    $sql = "SELECT ws_flash_departement.nom,ws_flash_departement.id_departement FROM ws_flash_departement WHERE ws_flash_departement.no_resultats != 0 AND ws_flash_departement.id_departement IN (SELECT url_departement.id_departement FROM url_departement WHERE url_departement.id_url=" . $url . ") ORDER BY nom ASC"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_assoc($result)) { 
        $deps[$row["id_departement"]]=utf8_encode($row["nom"]); 
    } 
    mysql_free_result($result); 
    return $deps; 
 } 

【问题讨论】:

  • 你正在尝试翻转一个 NULL

标签: php array-flip


【解决方案1】:

很可能您已更新到设置了魔术引号的服务器

这个 id 因为某些东西正在返回值 false 或不返回 true1 所以调试代码。你没有提供任何东西 array_flip() 你必须提供 array

示例:

$arr = array("a" => 3, "b" => 1, "c" => 2);
$arr = array_flip($arr);
print_r($arr);

【讨论】:

    【解决方案2】:

    array_flip 将一个数组作为第一个参数,而你什么也不给...

    PS:也许用几行代码,我可以给你一个更准确的答案

    【讨论】:

    • 这里是 PHP 代码的一部分: function redirectWrongDep($url) { $deps = @getDepsByIdUrl($url); $depsFlip = array_flip($deps); if ($_GET['dep'] && !in_array($_GET['dep'], $depsFlip)) { header('Location:'.URL);出口(); } }
    • 第二部分:function getDepsByIdUrl($url) { $sql = "SELECT ws_flash_departement.nom,ws_flash_departement.id_departement FROM ws_flash_departement WHERE ws_flash_departement.no_resultats != 0 AND ws_flash_departement.id_departement IN (SELECT url_departement. FROM url_departement WHERE url_departement.id_url=" . $url . ") ORDER BY nom ASC"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { $deps[$row["id_departement"]]=utf8_encode($row["nom"]); } mysql_free_result($result);返回$deps; }
    • getDepsByIdUrl 返回的值是多少?
    • 这个函数返回一个部门数组(它是一个法国项目)。法语系从 1 到 95。
    • 我的意思是它会返回您所期望的吗?你 print_r 这个数组了吗?
    【解决方案3】:

    查看本手册:

    http://php.net/manual/en/function.array-flip.php

    例如。

    $trans = array("a" => 1, "b" => 1, "c" => 2);
    $trans = array_flip($trans);
    print_r($trans);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 2015-02-23
      相关资源
      最近更新 更多