<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
function get_ship_class($category){
$csv = array_map("str_getcsv", file("https://siliconharvest.com.au/cassius-files/Shipping%20Classes.csv"));
$header = array_shift($csv);
// Seperate the header from data
if(in_array( "medium_shipping_class" ,$header)){
$col = array_search("medium_shipping_class" ,$header);
if($col = 'false'){
$col = '0';
}
}
// Pass the extracted column back to calling method
return array_column($csv,$col);
}
print_r(get_ship_class('printers'));
Сначала это выглядело проще, но возникла эта проблема с логическим значением.Итак, позвольте мне объяснить немного.За исключением проблемы с файлом, когда вы передавали строку в качестве второго параметра (не знаю, почему вы это сделали), при движении вперед у вас будет проблема с $col
.Из-за того, что ваш элемент находился в 1-й позиции массива, 0 будет преобразовано в false
(логическое значение).Поэтому я немного поработал, чтобы сначала убедиться, что искомое значение находится в массиве, а после получения его позиции и, если оно ложно, преобразовать его в 0.
if ( in_array( $category, get_ship_class() )) {
return "shipping-for-medium-sized-goods";
}
Эта часть, которую я только что вынул, недоступна в любом случае.Он приходит после вашего возвращения, поэтому вы никогда не сможете добраться туда.Функция returns
значений и ничего после этого не происходит.Считайте что-то вроде die();
.Более того, результат вывода будет таким:
Array ( [0] => printers [1] => monitors [2] => cases )