簡體   English   中英

將數組傳遞到in_array()

[英]Passing array into in_array()

請考慮以下PHP:

function get_ship_class()
{
    $csv = array_map("str_getcsv", file("somefile.csv", "r")); 
    $header = array_shift($csv); 

    // Seperate the header from data
    $col = array_search("heavy_shipping_class", $header); 

    foreach ($csv as $row)
    {      
        $array[] = $row[$col]; 
    }
}

如何將上述函數的結果數組傳遞到

if( in_array() ){
    //code
}

略微縮寫的版本,但與建議的相同,是從函數返回所需的數據,但使用array_column()提取數據...

function get_ship_class()
{
    $csv = array_map("str_getcsv", file("somefile.csv", "r")); 
    $header = array_shift($csv); 

    // Seperate the header from data
    $col = array_search("heavy_shipping_class", $header); 

    // Pass the extracted column back to calling method
    return array_column($csv,$col);
}

並使用它...

if ( in_array( "somevalue", get_ship_class() )) {
   //Process 
}

如果要多次使用此返回值,則可能需要將其存儲在變量中,而不是直接將其傳遞給in_array()方法。

這是評論所暗示的答案。

function get_ship_class(){
    $array = array();
    $csv = array_map("str_getcsv", file("somefile.csv", "r")); 
    $header = array_shift($csv); 
    // Seperate the header from data    
    $col = array_search("heavy_shipping_class", $header); 
    foreach ($csv as $row) {      
    array_push($array, $row[$col]);
    // array_push($array, "$row[$col]"); // You may need it as a string instead.
    }
return $array;
}



if( in_array("whatever_you_are_looking_for", get_ship_class()) ){
//code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM