私は狂気になり、配列の値を置き換えるには数時間かけて別のメソッドを試してみましたが、動作させることができません。配列の値を置き換えても機能しません
foreach($potentialMatches as $potentialKey)
{
$searchKeywordQuery = "SELECT keyword, id FROM picture WHERE id='$potentialKey'";
$searchKeywords = mysql_query($searchKeywordQuery) or die(mysql_error());
while ($searchKeyWordsRow = mysql_fetch_array($searchKeywords))
{
$keyword = $searchKeyWordsRow['keyword'];
$pictureKeywordArray[$searchKeyWordsRow['id']]['keywords'] = explode(",", $keyword);
$pictureKeywordArray[$searchKeyWordsRow['id']]['match'] = 4;
}
}
foreach($pictureKeywordArray as $key = > $picValue)
{
foreach($picValue['keywords'] as $key = > $picIdValue)
{
if ($picIdValue == $searchIdKey)
{
echo $picValue['match'];
$picValue['match']++;
echo $picValue['match'];
}
}
}
foreach($pictureKeywordArray as $key = > $picValue)
{
echo $picValue['match'];
}
私はそれが私に「++」の後に正しい値を与えるforeachループでpicValue [「一致」]をエコーするときは、見ることができるように、私は初心者です。しかし、私が配列をもう一度呼び出すと、私は5の代わりに4の値を私に与えます。これに関する助けを前にありがとう。データのコピーに
foreach($pictureKeywordArray as $key => &$picValue)
{ //^-- `&` makes it by reference
foreach($picValue['keywords'] as $key => $picIdValue)
{
if ($picIdValue == $searchIdKey)
{
echo $picValue['match'];
$picValue['match']++; //now updates what you want it to update
echo $picValue['match'];
}
}
}
おかげで、の代わりに
$pictureKeywordArray[$key]['match']
を試してみてください! :) – Philip@Philip、問題ありません^ _^ – Neal