php foreach输出数组只输出元素的第一个字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php foreach输出数组只输出元素的第一个字符相关的知识,希望对你有一定的参考价值。
php foreach输出数组只输出元素的第一个字符 例如数组里面的元素 array(php自学,JSP入门,.)
但是用foreach输出的是 pj即是每个元素的第一个字母
$a 代表的是数组中的值。如果需要取得下标应该用
foreach($list as $key=>$a)
$key 代表了数组中的下标。$a 代表的是数组的值
循环输出下标的语句应该是
foreach($list as $key=>$a)
echo $key;
这样就是输出了下标。 参考技术A foreach($arr as $e)
echo $e[0];
字符串的【0】即是第一个字符 参考技术B 那是因为你只取到了一维数组
接着foreach的话只取第一个字符
Foreach 只返回第一个值
【中文标题】Foreach 只返回第一个值【英文标题】:Foreach is only returning the first value 【发布时间】:2020-11-26 19:24:21 【问题描述】:我正在尝试将所有元素输出到一个列表中,但 foreach 循环只输出第一个元素,并且输出的次数与元素数量相同
如果我尝试按如下方式显示任何元素session.books[5].name
,那么我会得到想要的元素,而不是第一个
//...
List
ForEach(self.session.books) book in
Text(book.name)
//...
//Model:
struct Book: Identifiable
var id: String = UUID().uuidString
var name: String
//This way I fetch books:
func getBooks()
db.collection("books").addSnapshotListener (querySnapshot, error) in
guard let documents = querySnapshot?.documents else
print("No documents")
return
self.books = documents.map queryDocumentSnapshot -> Book in
let data = queryDocumentSnapshot.data()
let name = data["name"] as? String ?? ""
return Book(id: .init(), name: name)
【问题讨论】:
【参考方案1】:你可以使用
List
ForEach(self.session.books.indices, id: \.self) index in
Text(self.session.books[index].name)
但您的图书的 id
的唯一性似乎有问题。
【讨论】:
我更新了问题,也许现在很清楚id
有什么问题?
现在很清楚了。您所有的 ID 都只是空字符串。
@Jessy,谢谢。在模型中将var id: String = UUID().uuidString
替换为var id: UUID
为什么 UUID 会是可变的?以上是关于php foreach输出数组只输出元素的第一个字符的主要内容,如果未能解决你的问题,请参考以下文章
foreach 是不是保证在 php 中以数组顺序进行迭代?