我有一个具有这种结构的数组:
0 =>
array (size=19)
'ArticleId' => int 10042
'Eanbarcode' => string '0000000010042' (length=13)
'Brand' => string 'Lazzo' (length=5)
'Season' => string 'SS16' (length=4)
'Subseason' => string '' (length=0)
1 =>
array (size=19)
'ArticleId' => int 10043
'Eanbarcode' => string '0000000010043' (length=13)
'Brand' => string 'Lazzo' (length=5)
'Season' => string 'SS16' (length=4)
'Subseason' => string '' (length=0)
现在我想使用ArticleId
来获取该文章的所有产品信息。我想我首先需要在文章中找到正确的密钥编号,然后从密钥中获取信息,但我无法弄清楚如何操作。
答案 0 :(得分:1)
您可以使用foreach循环处理整个数组,然后挑出每个ArticleId
foreach ( $array as $article ) {
$articleId = $article['ArticleId'];
// do something with the ArticleId
}
答案 1 :(得分:1)
使用当前代码的方法是做这样的事情......
function getArticle($articleIdToFind, $articles) {
foreach ($articles as $article) {
$articleId = $article['ArticleId'];
if ($articleId == $articleIdToFind) {
return $article;
}
}
return null;
}
这似乎有点浪费,因为你每次都必须迭代整个文章数组。更好的方法是组织文章数组,使数组键是文章ID。例如...
加载文章时,请执行以下操作:
$articles = array();
$articlesResultSet; // Imagine this is an array of results that have just been fetched from the database.
foreach ($articlesResultSet as $a) {
$articles[$a['ArticleId']] = $a;
}
然后你有$articles
数组键是文章ID。这将getArticle函数转换为以下....
function getArticle($articleIdToFind, $articles) {
$result = null;
if (array_key_exists($articleIdToFind, $articles)) {
$result = $articles[$articleIdToFind];
}
return $result;
}