Запрос относительно ассоциативных массивов PHP - PullRequest
0 голосов
/ 12 октября 2009

У меня есть вопрос об ассоциативных массивах в php.

У меня есть следующий массив, в котором есть два элемента с именами 4 и 2. соответственно.

$items = array(4,2);

Теперь я хочу связать количество каждого предмета с ним, что можно сделать следующим образом:

$items['4']=23;
$items['2']=0;

, что означает, что есть 23, «пункт 4s» и нет «пункт 2».

Но я иногда заранее не знаю, что там есть в $ items , поэтому я хочу связать количество на основе местоположения. Я хотел сделать что-то вроде связывания 23 с тем, что есть в нулевом местоположении массива item :

$items['items[0]']=23;

Это, конечно, не сработало, потому что это неправильный способ извлечь то, что находится в нулевом местоположении предметов. Может кто-нибудь сказать, пожалуйста, как мне это сделать?

Ответы [ 3 ]

2 голосов
/ 12 октября 2009

Вы путаете в использовании предмета и предметов. Я полагаю, у вас есть и массив предметов, и массив предметов, иначе вещи могут легко стать волосатыми.

В любом случае, вы просто ссылаетесь на нее как на переменную, а не на строку:

$items[$item[0]] = 23;
0 голосов
/ 12 октября 2009

Я думаю, вы должны использовать свой массив как своего рода "карту". Номер предмета - ваш ключ, а количество - ваша стоимость.

Позвонив

$items = array(4,2);

вы создаете

$items[0] = 4;
$items[1] = 2;

но вы хотите использовать 4 и 2 в качестве ключа в вашем массиве. Так что вместо этого вы должны использовать

$items = array( 4 => false, 2 => false );

где false означает элемент, с которым еще не связано количество (также может быть, например, -1). Это создает

$items[2] = false;
$items[4] = false;

При использовании false вы можете проверить наличие неназначенных значений, вызвав

if ($items[4] === false) {
  echo "No quantity set!";
}

А теперь второй шаг ... если вы хотите присвоить элементу № 4 количество 23, просто позвоните

$items[4] = 23;

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

0 голосов
/ 12 октября 2009

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

$items = array( 0 => 4, 1 => 2 )

И вы хотите получить массив, который выглядит следующим образом:?!

$items = array( 0 => 4, 1 => 2, 2 => 0, 4 => 23 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...