新手在这里尝试制作一个简单的功能,我认为我接近解决方案,但我目前卡在了非法的偏移类型。
该函数将根据键的数量随机选择其中一个键,然后传播我的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 :(得分: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]
一样。