Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос о распределении массива.
 
 автор: rene2   (16.01.2007 в 14:17)   письмо автору
 
 

Помогите новичку.

    $string = "1,2,3";
    $param[1] = explode(",", $string);


Результат:
$param[1][1] = 1
$param[1][2] = 2
$param[1][3] = 3

Как добится чтобы результат был:
$param[1,1] = 1
$param[1,2] = 2
$param[1,3] = 3

   
 
 автор: himic   (16.01.2007 в 15:03)   письмо автору
 
   для: rene2   (16.01.2007 в 14:17)
 

а тебе обязательно двумерный массив?
попробуй
$string = "1,2,3";
$param[,1] = explode(",", $string);
или вообще
$param= explode(",", $string);

   
 
 автор: rene2   (16.01.2007 в 15:21)   письмо автору
 
   для: himic   (16.01.2007 в 15:03)
 

не $param= explode(",", $string); не подходит
Приведенный выше пример - это кусок кода из цикла в котором переменной $string присваиваются постоянно новые значения.
Вот полный код:

...
<?
$file_ranks 
= @fopen ("ranks.txt""r"//Открываем файл ranks.txt
$num //Счетчик
while (1//Цикл сбор статистики пользователя
{
    
$string fgets ($file_ranks1000); //Взять из файла $file_ranks строку с длиной 1000
    
if (feof($file_ranks)) break; //Конец файла, выход из цикла
    
$param[$num] = explode(","$string); //Разбить значения по массиву
    
$num++;
}
?>

Может есть более эффективное решение?

   
 
 автор: rene2   (16.01.2007 в 15:26)   письмо автору
 
   для: himic   (16.01.2007 в 15:03)
 

>попробуй
>$string = "1,2,3";
>$param[,1] = explode(",", $string);

Не работает

   
 
 автор: Sergey89   (16.01.2007 в 15:16)   письмо автору
 
   для: rene2   (16.01.2007 в 14:17)
 

использовать строковые ключи

   
 
 автор: rene2   (16.01.2007 в 15:24)   письмо автору
 
   для: Sergey89   (16.01.2007 в 15:16)
 

>использовать строковые ключи

А какая разница? Результат тот же.

   
 
 автор: Sergey89   (16.01.2007 в 17:49)   письмо автору
 
   для: rene2   (16.01.2007 в 15:24)
 

>> $param[1,1] = 1
$param['1,1'] = 1
Теперь понятна разница?

<?
$string 
"1,2,3"
$nums explode(','$string);
$new = array();
foreach (
$nums as $key => $v) {
    
$new['1,'.$key] = $v;
}
print_r($new);
?>

   
 
 автор: rene2   (16.01.2007 в 18:43)   письмо автору
 
   для: Sergey89   (16.01.2007 в 17:49)
 

Понял, не дурак, дурак бы не понял :)
Спасибо за науку

   
 
 автор: rene2   (16.01.2007 в 15:27)   письмо автору
 
   для: Sergey89   (16.01.2007 в 15:16)
 

И вообще, это правильно, использовать массив массивов?

   
 
 автор: himic   (16.01.2007 в 17:24)   письмо автору
 
   для: rene2   (16.01.2007 в 15:27)
 

Нормально

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования