Случайно выбрать ключ из массива, чтобы вернуть данные, сопоставленные с этим ключом массива

Здесь новичок пытается сделать простую функцию, я думаю, что я близок к решению, но в настоящее время я застрял с недопустимым типом смещения.

Функция, основываясь на количестве клавиш, выбирает один из ключей случайным образом, а затем распространяет мой оператор echo так, чтобы требуемые данные затем распространяли операторы echo функции. то есть, если выбран ключ «3», имя пользователя, имя и фамилия будут заполнены данными, связанными с третьим ключом «[3]» массива «$ aaUser».

Я попытался найти переполнение стека, php.net и Google, чтобы попытаться найти решение, чтобы попытаться решить эту функцию, но пока я не нашел ответ, который я могу понять в настоящее время.

мой пример массива:

$aaUser = [ //Make multidimensional
// 0 => nameUser
// 1 => namefirst
// 2 => namelast
0 => ["monkeework", "my", "name"],
1 => ["mentor", "Portia", "Plante"],
2 => ["teacher", "Bill", "Newman"],
3 => ["friend", "Sage", "Gerky"],
4 => [ "pet", "pedro",  "" //last postion left empty - if empty we skip]
];

моя функция:

function getRandomUser($arr){
$myKey = array_rand($arr);
$myValue = $arr[$myKey];

echo 'Username: ' . $arr[$myValue][0] . '<br />';

echo 'Name: ' . $arr[$myValue][1] . ' ' . $arr[$myValue][2] . '<br /><br />';

Как я называю функцию:

    getRandomUser($aaUser);//select array, get array data back as echo statements

0

Решение

Вы уже настроены $myValue = $arr[$myKey]; так ниже, где вы отображаете значения, которые вам просто нужно сослаться $myValue[1] и не $arr[$myValue][1],

function getRandomUser($arr){
$myKey = array_rand($arr);
$myValue = $arr[$myKey];

echo 'Username: ' . $myValue[0] . '<br />';

echo 'Name: ' . $myValue[1] . ' ' . $myValue[2] . '<br /><br />';

$aaUser передается в функцию, и теперь установлен как $arr внутри функции. Первая строка возвращает случайный ключ от $arr, Следующая строка устанавливает $myValue равно значению $arr[$myKey], Так например.

$myKey = 3; // randomly selected key
$myValue = $arr[3] = $aaUser[3] = array("friend", "Sage", "Gerky");
$myValue = array("friend", "Sage", "Gerky"); // what $myValue holds now

$arr а также $aaUser подобные. Так что бы ни держалось в $arr[3] будет установлен в $myValue, Для доступа к массиву мы просто вызываем $myValue[1],

Если вы попытаетесь позвонить $arr[$myValue][1] это как сказать $arr[array("friend", "Sage", "Gerky")][1],

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]