2010-12-30 5 views
0

Я новичок в php. Мне было интересно, как я могу объявить статический массив в php. Вот что я хотел бы сделать в C. Как для него соответствующий PHP-код?Объявление статических массивов в php

char a[][] = { (1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3) }; 

Из того, что я прочитал это должно быть что-то вроде этого -

$a = array(1 => array(1,1), 2 => array(1,2), ...); 

Правильно ли это? Если так, то это отстой :) Надеюсь, я ошибаюсь.

Спасибо, - Pav

ответ

2

Вы уже нашли способ сделать это изначально.

Другой вариант - объявить ваши данные как JSON (очень сжатый и удобный для пользователя формат). Это может быть либо отдельный файл в комплекте с вашим приложением, либо непосредственно в вашем коде в строке. Затем проанализируйте JSON во время выполнения. Поскольку PHP не точно известен скоростью, это может привести или не приведет к замедлению запуска приложения.

+1

говорит что-то вроде: '$ matrix = json_decode ('[[1,1], [1,2], [1,3], [2,1], [2,2], [2 , 3], [3,1], [3,2], [3,3]] '). Для ясности вы можете использовать дополнительные пробелы. –

+0

Спасибо, что это еще один способ пойти, я думаю. Я родом из C, и поэтому очень скучал по стилю C. Также, что вы подразумеваете под php, не известно для скорости? Это лучше, чем Java? Просто любопытно. – user220201

+0

См. Http://stackoverflow.com/questions/2359718/php-speed-vs-other-languages – dkamins

0

вы его уже выяснили, в вашем вопросе.

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

$a = array(array(1,1),array(1,2), ...); 

Кроме того, можно использовать то, что называется ассоциативные массивы, которые используют строковые ключи и вы определяете их так же, как вы делаете в вашем примере, за исключением использования строк вместо цифр ...

$ass_array = array('array_1' => array(1,1), 'array_2' => array(1,2), ...); 

вы затем вызвать ваш ассоциативный массив как это ...

$ass_array['array_1']; 

Кроме того, если вы хотите добавить отдельные элементы в массив (например, в цикле, чтобы загрузить массив) ...

$ass_array[] = $item; 
0

В дополнение к jondavidjohn's anwser, вы могли бы просто написать небольшой скрипт чтобы захватить список значений и сгенерировать для вас оператор массива.

Не нужно заботиться о том, насколько силен синтаксис тогда. Если задание длительное и достаточно повторяющееся, чтобы не заботиться, не делайте этого вручную. :)

Смежные вопросы