ФорумПрограммированиеPHP для идиотов → Массив на php

Массив на php

  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 11:31

    Что то не пойму как эту обработку массива на php сделать


    b=array[];
    $n = 4;//кол-во строк
    $m = $n*($n-1)/2; // кол-во столбцов
    for( $i = 0; $i < $n - 1; $i++){ // i - номер блока
    for( $j = 0; $j < $n - $i - 1; $j++ ){ // j - номер столбца в блоке
    b[ $i ][ $i * ( 2 * $n - $i - 1 ) / 2 + $j ] = 1; // i(2n-i-1)/2 = (n-1)+(n-2)+…+(n-i) - общая ширина предыдущих блоков
    b[ $i + $j + 1 ][ $i * ( 2 * $n - $i - 1 ) / 2 + $j ] = 1; // главная диагональ
    }
    }



    Ругается на b=array[]; Что то я не пойму как динамический двумерный массив задать.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2011 г. 11:37, спустя 6 минут

    $b=array();
    Дальше не читал код.
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 12:24, спустя 46 минут 30 секунд

    Да нет это я тут забыл поставить, а код зря не читал. Я так понимаю в php свое понимание массивов в отличии от других языков. Тут как бы если мне нужно сформировать массив из n строк и m столбцов, то n в данном случае получится тоже массив тоисть 1 строка - array[0], вторая строка - array[1]. Поэтому мне не понятно как сформировать двумерный массив в php и чтоб он динамический был.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 12:29, спустя 5 минут 12 секунд

    xDD, как должна проявляться двумерность?
    не всё полезно, что в swap полезло
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 12:36, спустя 7 минут 18 секунд

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 12:58, спустя 21 минуту 12 секунд

    Неужели нельзя никак по-другому сделать сделать чего ты там вобще сделать пытаешься.
    from TRIAL with LOVE
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 13:28, спустя 30 минут 24 секунды

    зачем высчитываешь m, если нигде его не используешь?
    Высокоуровневое абстрактное говно
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 15:02, спустя 1 час 33 минуты 25 секунд

    Это количество всего столбов так просто нарисал.
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 17:49, спустя 2 часа 47 минут 32 секунды

    да и таблицы вааще не в тему)) какое-то соответствие неправильное… понятно, что в строку количество строк, а в столбец количество столбцов… но пересечений чет дохуя…
    например, в первой таблице выражение "если 4 строки, то 3 столбца" так же верно, как и выражение "если 4 строки, то 6 столбцов" XD
    Высокоуровневое абстрактное говно
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 18:43, спустя 53 минуты 36 секунд

    лабораторные работы на пiха.ру?

    xDD, ты что-то вроде этого пытаешься получить?



    Поэтому  мне не понятно как сформировать двумерный массив в php и чтоб он динамический был.

    расскажи, если вдруг узнаешь, как на PHP создать нединамический массив :)

    Ты, видимо, хотел бы иметь такую конструкцию:
    int b = new int[n][m];

    Так вот нихуя в пхп подобного нет. Если нужна матрица - создай массив, в него добавь строки (другие массивы), в них добавь элементы.

    что-то вроде того:

    $b = array();
    for ($i = 0; $i < $n; ++$i) {
    $b[$i] = array(); // создаем строку
    for ($j = 0; $j < $m; ++$j) {
    $b[$i][$j] = null; // создаем элемент
    }
    }


    можно повыебываться и написать что-то вроде этого:
    $b = array_fill_keys(range(0, $n - 1), array_fill(0, $m, null));
    - смысл тот же, но короче и нихрена непонятно.

    Я так понимаю в php свое понимание массивов в отличии от других языков

    Да уж, ещё какое. Массив в php - это не просто массив, как например в Си или Паскале. Это весь STL из С++ и Collection Framework из Java запиханные в одну структуру данных. Поэтому массивы в php используются там, где в других языках для этого используются списки, стеки, деревья, множества, хеш-таблицы и всё остальное. Короче пиздец :)
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 18:58, спустя 15 минут 29 секунд

    Да уж перспектива печальная(
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 15 февраля 2011 г. 19:01, спустя 2 минуты 32 секунды


    Да уж перспектива печальная(
    Чем же? Ты лучше расскажи зачем тебе это надо.
    Или ты просто задался целью найти способ наиболее извращенного заполнения матриц?
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 19:03, спустя 2 минуты 15 секунд

    Для чего надо для игровой таблицы такого типа
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 19:11, спустя 8 минут 1 секунду

    PHP
    $b = array_fill_keys(range(0, $n - 1), array_fill(0, $m, null));
    - смысл тот же, но короче и нихрена непонятно.

    Да верняк))
  • xDD

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 15 февраля 2011 г. 19:18, спустя 6 минут 49 секунд

    $b = array();
    for ($i = 0; $i < $n; ++$i) {
    $b[$i] = array(); // создаем строку
    for ($j = 0; $j < $m; ++$j) {
    $b[$i][$j] = null; // создаем элемент
    }
    }

    Вот за это спасибо попробую что нить придумать.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!