我有这个脚本将mysqli记录转换成数组,我正在使用foreach循环来显示那些结果。我遇到的问题是如何也可以在foreach循环中显示array_column的性别值?
我只能显示用户名值。我不知道如何在foreach循环中显示性别值。请不要建议其他循环类型。我需要使用带有array_column的foreach循环来完成此操作。
这是我的代码示例
<?php
$db_servername='localhost';
$db_username='bbb';
$db_password='1234';
$db_name='test';
$db_connect= new mysqli($db_servername,
$db_username,$db_password,
$db_name);
$db_query= "SELECT*FROM 500_users LIMIT 25";
$db_result= $db_connect->query(
$db_query);
while($db_row= $db_result->fetch_assoc()){
$items[] = $db_row;
}
$array_structure_for_items_value_id = array_column($items,'username','gender');
foreach($array_structure_for_items_value_id as $index => $value){
echo $value.'<br>';//<--username
//echo $value.'<br>';<--I will like to show the gender value as well but how?
}
?>
答案 0 :(得分:2)
我假设您的意思是如何在foreach循环中显示多个数组值,如果这是您的意思,那么这是我的示例方法,其中使用第三个组合数组值来说明这一点。只是为了让您更好地理解我的例子。
<?php
$db_servername='localhost';
$db_username='bbb';
$db_password='1234';
$db_name='test';
$db_connect= new mysqli($db_servername,
$db_username,$db_password,
$db_name);
$db_query= "SELECT*FROM 500_users LIMIT 25";
$db_result= $db_connect->query(
$db_query);
while($db_row= $db_result->fetch_assoc()){
$items[] = $db_row;
}
$array_1 = array_column($items,'username');
$array_2 = array_column($items,'gender');
$array_3 = array_column($items,'password');
$iterator = new MultipleIterator();
$iterator->attachIterator(new ArrayIterator($array_1));
$iterator->attachIterator(new ArrayIterator($array_2));
$iterator->attachIterator(new ArrayIterator($array_3));
foreach($iterator as $index => $value){
echo $index[0].'<br>';
echo $value[0].'<br>';
echo $index[1].'<br>';
echo $value[1].'<br>';
echo $index[2].'<br>';
echo $value[2].'<br>';
}
?>
答案 1 :(得分:0)
如果您有一个像这样的数组:
$heroes = [
['id' => 10,'hero' => 'superman', 'gender' => 'm'],
['id' => 21,'hero' => 'wonder woman', 'gender' => 'f'],
['id' => 34,'hero' => 'poison ivy', 'gender' => 'f'],
['id' => 46,'hero' => 'penguin', 'gender' => 'm'],
];
然后您这样做:
$other = array_column($heroes, 'hero', 'id');
您得到了:
[
10 => 'superman',
21 => 'wonder woman',
34 => 'poison ivy',
46 => 'penguin'
]
如果遍历此数组,则只能获取索引或英雄名称,因为这就是数组中的全部内容。
如果您这样做:
$other = array_column($heroes, 'hero', 'gender');
您得到了:
[
'f' => 'poison ivy',
'm' => 'penguin'
]
因为使用性别作为密钥,并且密钥必须唯一。
因此,妨碍您使用array_column的原因。 我不明白为什么您只是不遍历数组。 您不需要array_column。
while($db_row= $db_result->fetch_assoc()){
$items[] = $db_row;
}
foreach($items as $item) {
echo $item['hero'].'<br>';
echo $item['gender'] . '<br>';
}
答案 2 :(得分:-1)
在您设置的foreach循环中,$ index保留了'user_id'。
echo $index . ': ' . $value
结果:
"*user_id*: *username*"