2011-10-06 20 views
8

मैं इस कोड कोशिश कर रहा हूँ के रूप में एक अदिश मान का उपयोग नहीं कर सकता:एक सरणी

for ($x = 0; $x < $numCol; $x++) { 
    for ($i = 0; $i < $numRows; $i++) { 
     $arr.$x[] = $todas[$i][$x]."\n"; //problem here 
    } 
} 

echo $arr0[0]; 
echo $arr1[0]; 
... 

लेकिन मैं इस warning: Cannot use a scalar value as an array

हो और इको कुछ भी नहीं। क्यूं कर ? और समाधान क्या है?

उत्तर

11

यहाँ आप क्या सोचते हैं आप क्या करना चाहते है की तरह कुछ के साथ खत्म हो जाएगा। के साथ अपने //problem here लाइन बदलें:

${'arr' . $x}[] = $todas[$x][$i]."\n"; 

लेकिन मैं दृढ़ता से है कि करने की सलाह देते हैं। बस अपनी बोली-आयामी सरणी का उपयोग करें।

1

जब आप $arr.$x[] लिखते हैं, यह $arr[$x][]

के बराबर है

echo $arr[0][0]; 
echo $arr[1][0]; 
5

करके अपने इको के बजाय ऐसे मुझे लगता है कि आप का मतलब: ${'arr'.$x}[] बजाय $arr.$x[]

$arr.$x[] 

एक साथ $ आगमन की स्ट्रिंग प्रतिनिधित्व और $ x श्रेणीबद्ध ताकि आप 'Array0'[] = ...$arr0[] के बजाय