Передача массива в 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
}

?

Вы должны вернуть его, а затем передать в него вызов функции

Qirel 22.11.2018 15:06

в функции вы можете использовать return $ array; и когда вы вызываете функцию get_ship_class (), вы можете получить свой массив

Sfili_81 22.11.2018 15:08

откуда взялся массив $?

Andrew 22.11.2018 15:10

@Andrew функция позаимствована из ответа это. Это неправильно?

ptrcao 22.11.2018 15:12

добавить return $array; после закрытия } для цикла foreach в функции и использовать как if (in_array('needle', get_ship_class()) {}

treyBake 22.11.2018 15:12

@ptrcao Я сейчас на мобильном телефоне, похоже, у вас есть твердый ответ ниже :-)

Qirel 22.11.2018 15:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
252
2

Ответы 2

Это ответ, который предлагают комментарии.

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
}

Слегка сокращенная версия, но та же, что предлагается, - вернуть требуемые данные из функции, но с использованием 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().

Другие вопросы по теме