Помогите, пожалуйста, с массивом, выбился из сил уже.

P
На сайте с 06.01.2009
Offline
592
602

Есть файл fajl1.csv со строками строка


товар;количество
ламинат таркетт;10
кирпич;14
дерево венге;27


$file1 = file($fajl1);
for ($x=1; $x<$vsegonewzaprosov; $x++) {
$ght = explode(";", $file1[$x]);
$tovar= $ght[0];
$kolichestvo = $ght[1];
//пишу в массив
$newmassivves[$tovar][]=$kolichestvo;
}

// из другого файла
$file2 = file($fajl2);
for ($x=1; $x<$vsegostrok; $x++) {
$stroka = $file2[$x];
$ght = explode(";", $file2[$x]);
$tovar = $ght[5]; // название товара на русском языке, НАПРИМЕР кирпич
//ТЕПЕРЬ НАДО ИЗ ТОГО МАССИВА ДОСТАТЬ СЮДА КОЛИЧЕСТВА
$newrez = $newmassivves[$tovar][0]; // т.е. если кирпич, то надо получить $newrez=14;

}

Что делаю не так, подскажите, плиз.

Exillon
На сайте с 30.01.2008
Offline
94
#1
postavkin:
Есть файл fajl1.csv со строками строка


Что делаю не так, подскажите, плиз.

Так а какая цель что в итоге нужно получить?

Я пока понял что нужно после первого массива получать количество товара по его названию.

if($file=file('file_path')) foreach ($file as $val) {
$ex=explode(';', $val);
$mas[$ex[0]]=$ex[1];
}

//получить количество по названию товара.
$count=$mas[$item_name];
Перехват доменов с ТИЦ и PR, Списки дроп доменов. (https://dropwind.com/exp_domains) Регистрация доменов net-7.66$, com-8.30$, org-5.99. Хостинг от 1.24$. (https://dropwind.com/) wm BL 750+
[Удален]
#2
Exillon:

if($file=file('file_path')) foreach ($file as $val) {

$ex=explode(';', $val);
$mas[$ex[0]]=$ex[1];
}

а если файл пустой? может стоит sizeof($file) добавить?)))

Exillon
На сайте с 30.01.2008
Offline
94
#3
klaustrafob:
а если файл пустой? может стоит sizeof($file) добавить?)))

Ну так там и стоит вообще-то проверка на пустой файл :), точнее на отсутствующий... А с пустым ошибки не будет, - будет только пустой массив на выходе, с одним пустым элементом.

Не помню только выкидывает ли функция file ворнинг при отсутствии файла, если да и это обычное дело что файла нет - то можно добавить собаку

if($file=@file('file_path'))
чтобы левых ворнингов не сыпалось.

А ну если присутствует и пустой, тогда это первый массив будет пустой, но так можно много проверок поставить на всякие неожиданности, если есть строка, а там нет разделителя для массива и т д. Все остальное уже зависит от задачи и возможных сценариев.

D
На сайте с 14.01.2007
Offline
153
#4

мой хрустальный шар говорит, что ошибка здесь:

$newmassivves[$tovar][]=$kolichestvo;

должно быть

$newmassivves[$tovar]=$kolichestvo;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий