我在这里有一个使用FETCH_ASSOC的简单例子:
// array 1
$sql1 = "SELECT shortname, unicode FROM my_table ORDER BY RAND() LIMIT 4";
$stmt1 = $pdo->prepare($sql1);
$stmt1->execute();
$data1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
// array 2
$sql2 = "SELECT shortname, unicode FROM my_table ORDER BY RAND() LIMIT 4";
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute();
$data2 = $stmt2->fetchAll(PDO::FETCH_ASSOC);
循环遍历第一个数组:
$counter = 0;
foreach($data1 as $item) {
// get items from table
$shortname = $item['shortname'];
$unicode = $item['unicode'];
}
我可以看到我检查它看起来像这样的$ data1数组的格式:
我可以使用foreach循环遍历第一个数组。
每次循环时,我都希望从另一个数组中访问相应的值(在$ data2中)。
我发现语法无法从数组中引用特定的短代码和unicode配对。
例如,我如何引用第3个元素中的数据,例如"心脏"和" 2764"?我想我需要以某种方式传递数字2,说我想要访问第3个元素中的数据,但我不确定如何?
感谢下面arkascha的帮助,我得到了答案:
// array 1
$sql1 = "SELECT shortname, unicode FROM my_table ORDER BY RAND() LIMIT 4";
$stmt1 = $pdo->prepare($sql1);
$stmt1->execute();
$data1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
// array 2
$sql2 = "SELECT shortname, unicode FROM my_table ORDER BY RAND() LIMIT 4";
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute();
$data2 = $stmt2->fetchAll(PDO::FETCH_ASSOC);
$counter = 0;
foreach($data1 as $item) {
// get data from $data1
$shortname1 = $item['shortname'];
$unicode1 = $item['unicode'];
// get data from $data2 by referincing them using $counter value
$shortname1 = $data2[$counter]['shortname'];
$unicode1 = $data2[$counter]['unicode'];
// build the values from above into a concatenated HTML string to output later on...
// increment the counter
$counter ++;
}
答案 0 :(得分:0)
当您从数据库中获取结果并且您不知道哪个索引'heart'和'2764'存在时,您可以使用此技术来查找索引。
$inde = array_search('2764', array_column($data1, 'unicode'));
此代码返回'heart'和'2764'存在的索引。
现在,您可以使用$data1[$key];