Я пытался сделать что-то вроде этого:
$cat1 = array('hello', 'everyone'); $cat = array('bye', 'everyone'); for($index = 0; $index < 2; $index++) { echo $cat$index[1]; }
Конечно, это не работает. Что мне нужно здесь изменить?
Вы должны использовать вложенные массивы, но это можно сделать.
$cat1 = array('hello', 'everyone'); $cat2 = array('bye', 'everyone'); for($i = 1; $i <= 2; $i++) { echo ${'cat' . $i}[1]; }
Ссылка: http://php.net/language.variables.variable
Это было бы намного лучше:
$cats = array( array('hello', 'everyone'), array('bye', 'everyone') ); foreach ($cats as $cat) { echo $cat[1]; }
Это то, что вы намеревались?
$cat0 = array('hello', 'everyone'); $cat1 = array('bye', 'everyone'); for($index = 0; $index < 2; $index++) { $varname = 'cat'.$index; echo $varname[0].' '.$varname[1]; }
Если вы настаиваете на этом так …
echo ${'cat' . $index}[1];
Чтобы эхо-элементы внутри массивов, вам нужно использовать
echo $cat[$index]
с вашим примером.
Я не уверен, что предполагается $index[1]
? Возможно, я неправильно понял ваш вопрос.
Вы не можете ссылаться на $ index таким образом, это не массив.
echo $cat[$index];
это то, что вы хотите сделать.