मैं सभी 'imdb' कुंजियों के मान को 10 से गुणा करना चाहता हूं और मान को अपडेट करना चाहता हूं। नीचे दिए गए कोड में जब मैं print_r $horrorMovies करता हूं तो यह दिखाता है कि मैंने आवश्यक मात्रा के साथ एक नई सरणी बनाई है। यह लगभग वहाँ है अगर मैं करता हूँ
$horrorMovies[0]['imdb'] = $imdbPercent;
लेकिन मान केवल पहले नेस्टेड सरणी में लिखे जाते हैं।
मुझे यकीन नहीं है कि अगर यह संभव हो तो यह काम foreach के साथ कैसे करें।
function imdbMultiply($n) {
return($n['imdb'] * 10);
}
$horrorMovies = array(
array(
"title" => "The babadook",
"imdb" => 6.8,
"rotten" => 98
),
array(
"title" => "The shining",
"imdb" => 8.4,
"rotten" => 87
)
);
$imdbPercent = array_map("imdbMultiply", $horrorMovies);
$horrorMovies['imdb'] = $imdbPercent;
4 जवाब
//original data
$horrorMovies = array(
array(
"title" => "The babadook",
"imdb" => 6.8,
"rotten" => 98
),
array(
"title" => "The shining",
"imdb" => 8.4,
"rotten" => 87
)
);
//define "transformation" function, note that the argument is passed via reference
function imdbMultiply(&$n) {
$n['imdb'] *= 10;
}
//one option is to use foreach and then unset the reference to the
//last array element
foreach($horrorMovies as &$v){
$v['imdb'] *= 10;
}
unset($v);
print_r($horrorMovies);
//alternatively, one might apply the "transformation" function
//directly to each array element without the need to create a copy
array_walk($horrorMovies, "imdbMultiply");
print_r($horrorMovies);
आप केवल सबरेरे [imdb] आइटम्स को फोरच कर सकते हैं।
$horrorMovies = array(
array(
"title" => "The babadook",
"imdb" => 6.8,
"rotten" => 98
),
array(
"title" => "The shining",
"imdb" => 8.4,
"rotten" => 87
)
);
foreach($horrorMovies as &$subarray){
$subarray["imdb"] *= 10;
}
var_dump($horrorMovies);
आपको बस एक लूप में जाने और 'imdb' मानों को बदलने की जरूरत है, अगला जोड़ें आपके कोड के लिए के लिए लूप:
for ($i=0; $i<count($horrorMovies); $i++){
$horrorMovies[$i]['imdb']*=10;
}
अगर मैं समझता हूं कि आप क्या उम्मीद करते हैं, तो आपका imdbMultiply() फ़ंक्शन निम्न होना चाहिए जिसका उपयोग array_map :
function imdbMultiply($n) {
$n['imdb'] *= 10;
return $n;
}
क्या आप यही उम्मीद करते हैं?
एक अन्य विचार array_walk फ़ंक्शन का उपयोग करना है, लेकिन आपको अपने imdbMultiply को परिभाषित करना चाहिए () इस तरह कार्य करें:
function imdbMultiply(&$n) {
$n['imdb'] *= 10;
}
Array_walk का उपयोग अलग है:
array_walk($horrorMovies, "imdbMultiply");
var_dump($horrorMovies);
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।