2015-06-29 6 views
5

में अंतिम पंक्ति लौट रहा के रूप मेंपीएचपी multidimentional सरणी

$array = array(); 

$array["id"] = "1"; 
$array["name"] = "name1"; 
$array["country"] = "country1"; 

$array["id"] = "2"; 
$array["name"] = "name2"; 
$array["country"] = "country2"; 

$array["id"] = "3"; 
$array["name"] = "name3"; 
$array["country"] = "country3"; 

$array["id"] = "4"; 
$array["name"] = "name4"; 
$array["country"] = "country4"; 

foreach($array as $e){ 
    print_r($e); 
} 

बहुआयामी सरणी से प्राप्त उपयोगकर्ता मूल्य कोशिश कर रहा हूँ foreach यह मेरे 4name4country4 वापसी केवल

मैं की तरह पंक्तियों लाने के लिए की जरूरत है

foreach($array as $e){ 
    $id=$e['id']; 
    $name=$e['name']; 
    $country=$e['country']; 
    echo $id.'/'.$name.'/'.$country.'<br>'; 
} 

लेकिन यह मुझे Illegal string offset 'id' के रूप में त्रुटि देता है जो मुझे सरणी के बारे में समझा जाता है, इससे सभी मान वापस आना चाहिए, कृपया देखें कि यह आसान क्यों है ई सरणी काम नहीं कर रही है और इसे करने का कोई तरीका सुझाता है

+0

कर देना नहीं होगा। –

+0

@ b0s3, क्या एकाधिक कुंजी को बड़े पैमाने पर करने का कोई तरीका है। –

+0

आप इसे '$ temp_array ["id"] = "1"; $ temp_array ["name"] = "name1"; $ temp_array ["country"] = "country1";' और 'array_push ($ array, $ temp_array) ', आपको यह प्रत्येक सरणी – Subash

उत्तर

4

वर्तमान में आप key एस ओवरराइट कर रहे हैं। key एस को ठीक से जोड़ने की आवश्यकता है। अभी आप सरणी कई बार अधिलेखन कर रहे हैं,

$array[0]["id"] = "1"; 
$array[0]["name"] = "name1"; 
$array[0]["country"] = "country1"; 

$array[1]["id"] = "2"; 
$array[1]["name"] = "name2"; 
$array[1]["country"] = "country2"; 

या

$array = array(
    0 => array('id' => 1, 'name' => 'name1', 'country' => 'country1'), 
    1 => array('id' => 2, 'name' => 'name2', 'country' => 'country2'), 
); 
+0

यह काम करता है, त्वरित उत्तर के लिए धन्यवाद। –

+0

आपकी मदद करने में खुशी हुई .. –

2

आप इस तरह बहुआयामी सरणी बनाने के लिए - आप की तरह सरणी का निर्माण करने के लिए है।

$arrays = [ 
    [0]=> 
    ["id"] => "1", 
    ["name"] => "name1", 
    ["country"] => "country1" 
    ], 
    [1]=>[ 
    ... 
    ] 
]; 
foreach($arrays as $array){ 
    $id=$array['id']; 
    $name=$array['name']; 
    $country=$array['country']; 
    echo $id.'/'.$name.'/'.'$country'.'<br>'; 
} 
4

इसके बजाय, यह की तरह ताकि आप सरणी कुंजी आप `key`s अधिलेखित कर रहे हैं मैन्युअल रूप से

$array = array(); 

$array[] = array("id" => 123, "name" => "Your name", "country" => "UK"); 
$array[] = array("id" => 1342, "name" => "Your name 2 ", "country" => "UK"); 
foreach में

तो यह

foreach($array as $key => $val){ 

echo $key. ":  ".$val['id']. " " . $val['name']; 
} 
+0

यह समाधान भी अच्छा है लेकिन मेरे आवेदन में मुझे मूल्यों को बदलना होगा जो सरणी की कुंजी होने पर आसान होगी। धन्यवाद –

+0

@TallboY ​​मेरे संपादित उत्तर को देखें, कृपया फ़ोरैच लूप देखें, इसमें $ key'' चर है जिसमें '$ array' मानों को फिर से चालू किया जाएगा – Umair

संबंधित मुद्दे