Как получить целые числа CSV, прочитанные как целые числа из строковой переменной - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть строка, которую я получаю после очистки некоторых значений из файла xml.

$resolutions=strip_tags($resolutions,allow);  // gives me '75 75 300 300 600 600'

Затем я заменяю пробелы на запятые:

$resolutions = preg_replace('#\s+#',',',trim($resolutions)); // gives me '75,75,300,300,600,600'

Затем я беру что и хочу извлечь минимальные и максимальные значения, как это

$resolution_min = min($resolutions);   

на странице для отображения

echo $resolution_min; // still gives me '75,75,300,300,600,600'

Однако, когда я изменяю код, я хочу, чтобы он отображался на странице

 echo min(75,75,300,300,600,600);  // it displays '75' as it should

Я думаю, проблема в том, что значения CSV интерпретируются как одна текстовая строка, и мне нужно, чтобы они читались как целочисленные значения CSV.

Есть ли способ заставить их быть читать как цифры c значения по мин и макс?

Я думаю, что часть моей проблемы связана с этой строкой или строкой, подобной ей, jus be for команда "взорвать"

$list = "" . substr($scansupportedresolutions, $start,$length) . "";

Я никогда не видел такого рода двойные двойные кавычки и двойные двойные кавычки и понятия не имею, что это значит

Это просто говорит, что вся строка в $ list будет

".<CONTENT HERE>."

а конкретно в двойных кавычках? Что бы это ни было, мне кажется, что это решающее значение для команды взрыва.

Ответы [ 2 ]

3 голосов
/ 14 февраля 2020

С мин :

Если первым и единственным параметром является массив, min () возвращает самое низкое значение в этом массиве. Если указано хотя бы два параметра, min () возвращает наименьшее из этих значений.

Вы передаете один параметр, и это строка. Передать массив:

$resolutions = explode(',', $resolutions);
$resolution_min = min($resolutions);
0 голосов
/ 14 февраля 2020

AbraCadaver прав в своем ответе.

Я пытался улучшить ваш код. Взгляните

<?php
// After Stripping tag
$resolutions = "75 75 300 300 600 600";
// No need to conver to Space to comma
$resolutionsArray = explode(" ", $resolutions); 
$resolutionMin = min($resolutionsArray);
print($resolutionMin);

Преобразование «белого пространства» в «Запятую» не дает никакого эффекта. Вы можете разбить строку на массив, установив «пробел» в качестве разделителя.

Надеюсь, он вам поможет.

...