कैसे एक फॉरेक्स लूप से मूल्यों को स्टोर करने के लिए एक सरणी में?


115

फॉरेस्ट लूप से मूल्यों को एक सरणी में संग्रहीत करने की आवश्यकता है, ऐसा करने में सहायता की आवश्यकता है।

नीचे दिया गया कोड काम नहीं करता है, केवल अंतिम मान संग्रहीत करता है, कोशिश की गई है, $items .= ...,लेकिन वह चाल भी नहीं कर रहा है, किसी भी मदद की सराहना की जाएगी।

foreach($group_membership as $i => $username) {
    $items = array($username);
}

print_r($items);

12
.=पाठ जोड़ता है। []एक सरणी पर जोड़ता है।
स्किलड्रिक

अब तक Skilldrick ने इसे एक लाइनर के साथ किसी भी आगे जाने की आवश्यकता नहीं है।
user1946891

जवाबों:


255

$itemsलूप के बाहर के ऐरे को डिक्लेयर करें और ऐरे में $items[]आइटम जोड़ने के लिए उपयोग करें:

$items = array();
foreach($group_membership as $username) {
 $items[] = $username;
}

print_r($items);

7
इसके अलावा, $iयदि आप इसका उपयोग नहीं करने जा रहे हैं , तो कुंजी ( ) को न निकालें ।
मत्तेयो रीवा

2
$items = array();पहले से ही घोषणा करना आवश्यक नहीं है, है ना? php बस एक खाली सरणी
बनाएगा

यदि $ उपयोगकर्ता नाम कुछ शून्य है तो क्या होगा? हमारे पास एक समान स्थिति है जहां रिकॉर्ड एक एपीआई के रूप में आ रहे हैं, और किसी तरह हम सरणी में कुछ अशक्त रिकॉर्ड के साथ समाप्त हो रहे हैं।
पिक्सेलविज़

14

उपयोग

$items[] = $username;

7
बस सुनिश्चित करें कि $items = array();लूप से पहले दिखाई देता है।
स्किलड्रिक

क्या आप यह समझाने में मदद कर सकते हैं कि आपको $ आइटम क्यों घोषित करना है = सरणी (); पाश से पहले। मैंने ऐसा कुछ किया और इसकी घोषणा नहीं की और यह अभी भी काम करता है। क्या इसे जोड़ना बेहतर है या इसकी आवश्यकता नहीं है?
रोबक

इसे बाहर देखें @ robk27 stackoverflow.com/questions/8246047/…
Liam McArthur

7

प्रयत्न

$items = array_values ( $group_membership );

1
वैसे मुझे लगता है कि फॉर्च्यूनर लूप उससे ज्यादा कर रहा है, अन्यथा यह सबसे अच्छा उपाय है।
मट्टियो रीवा

5
<?php 
$items = array();
$count = 0;
foreach($group_membership as $i => $username) { 
 $items[$count++] = $username; 
} 
print_r($items); 
?>

3
$ गिनती सामान के लिए कोई ज़रूरत नहीं है। बस $ सरणी [] = $ चीज;

मैं इस उत्तर को अस्वीकार करने जा रहा हूं, हालांकि: 1. यह एक कोड-ओनली उत्तर है जो 2. डेवलपर्स को अनावश्यक / बुरे व्यवहारों की जानकारी देता है ... क्योंकि यह अनुशासित काम करने और Stackoverflow को बेहतर संसाधन बनाने का एक शानदार मौका है। ।
मिकमैकुसा

मेरे पास वह मुद्दा है जहां मेरा सरणी केवल अंतिम तत्व देता है जिसे सरणी में धकेल दिया गया था। आपके द्वारा सुझाई गई गणना का उपयोग करके मेरी समस्या हल हो गई।
जस प्रीत

2

आप मेरा जवाब देने की कोशिश कर सकते हैं,

आपने यह लिखा:

<?php
foreach($group_membership as $i => $username) {
    $items = array($username);
}

print_r($items);
?>

और आपके मामले में मैं यह करूंगा:

<?php
$items = array();
foreach ($group_membership as $username) { // If you need the pointer (but I don't think) you have to add '$i => ' before $username
    $items[] = $username;
} ?>

जैसा कि आप अपने प्रश्न में दिखाते हैं, ऐसा लगता है कि आपको उन उपयोगकर्ता नाम की एक सरणी की आवश्यकता है जो किसी विशेष समूह में हैं :) इस मामले में मैं एक साधारण वर्ग लूप के साथ एक अच्छा sql क्वेरी पसंद करता हूं;)

<?php
$query = "SELECT `username` FROM group_membership AS gm LEFT JOIN users AS u ON gm.`idUser` = u.`idUser`";
$result = mysql_query($query);
while ($record = mysql_fetch_array($result)) { \
    $items[] = $username; 
} 
?>

whileतेज़ है, लेकिन अंतिम उदाहरण केवल एक अवलोकन का परिणाम है। :)


0
$items=array(); 
$j=0; 

foreach($group_membership as $i => $username){ 
    $items[$j++]=$username; 
}

बस अपने कोड में उपरोक्त प्रयास करें।


यह कोड-केवल उत्तर किसी भी डेवलपर्स द्वारा उपयोग नहीं किया जाना चाहिए। काउंटर और इंक्रीमेंट बिलकुल भी जरूरी नहीं है।
मिकमैकुसा

0

बस आपको बहुत अधिक टाइपोस बचाने के लिए:

foreach($group_membership as $username){
        $username->items = array(additional array to add);
    }
    print_r($group_membership);

-1

यह प्रश्न काफी पुराना लगता है, लेकिन आप इसे पास करते हैं, तो आप नीचे दिए गए उदाहरण का उपयोग करके किसी सरणी में डेटा को पुश करने के लिए PHP इनबिल्ट फंक्शन array_push () का उपयोग कर सकते हैं।

<?php
    $item = array();
    foreach($group_membership as $i => $username) {
        array_push($item, $username);
    }
    print_r($items);
?>

पुनरावृत्त फ़ंक्शन कॉल करना अक्षम है। वर्ग ब्रेस धक्का सिंटैक्स (8 साल पहले सुझाव दिया गया) अधिक कुशल होगा। इस उत्तर का उपयोग एकल तत्वों को एक सरणी में धकेलने के लिए नहीं किया जाना चाहिए। (और घोषणा $iबेकार है)
मिकमैकुसा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.