2009-11-12 50 views
0

當在的print_r或後續代碼var_dump如何循環使用數組?

echo "<pre>"; 
echo var_dump($groupname); 
echo "</pre>"; 

我得到的結果

array(2) { 
    [0]=> 
    object(stdClass)#330 (1) { 
    ["name"]=> 
    string(3) "AAA" 
    } 
    [1]=> 
    object(stdClass)#332 (1) { 
    ["name"]=> 
    string(3) "BBB" 
    } 
} 

現在我想得到了來自陣列的結果。

AAA | BBB 

回答

5

您可能想通過查看關於how arrays work開出。此外,如果您不知道「什麼」數組,請查看this Wikipedia entry。從PHP.NET

聲明一個索引

實例和值

<?php 
$arr = array("foo" => "bar", 12 => true); 

echo $arr["foo"]; // bar 
echo $arr[12]; // 1 
?> 

下面是結果

<?php 
// Create a simple array. 
$array = array(1, 2, 3, 4, 5); 
print_r($array); 

// Now delete every item, but leave the array itself intact: 
foreach ($array as $i => $value) { 
    unset($array[$i]); 
} 
print_r($array); 

// Append an item (note that the new key is 5, instead of 0). 
$array[] = 6; 
print_r($array); 

// Re-index: 
$array = array_values($array); 
$array[] = 7; 
print_r($array); 
?> 

結果上述的另一個例子:

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 4 
    [4] => 5 
) 
Array 
(
) 
Array 
(
    [5] => 6 
) 
Array 
(
    [0] => 6 
    [1] => 7 
) 

你的特殊的問題

現在看來,我認爲你想從你的陣列/列表中的每個記錄/行選擇每個名稱。

爲此,您需要在整個數組中循環/遍歷並寫入當前行的名稱值。與數組循環

<?php 
$people = Array(
     Array('name' => 'Kalle', 'salt' => 856412), 
     Array('name' => 'Pierre', 'salt' => 215863) 
     ); 

for($i = 0; $i < sizeof($people); ++$i) 
{ 
    echo $people[$i]['name']; 
} 
?> 

沒有循環這樣做

因此,讓我們說,你知道你的數組只有兩個值,以及那麼如果你有一個數組尋找像這樣:

$arr = array(10, 20); 

你可以寫這樣的東西把它們寫出來:

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

請記住,當你告訴你的陣列,其「行」得,你總是說「多少步走」,這意味着如果你想第一個值,你拿0步,因此該索引是... 0!

面向對象和數組

由於您使用的陣列中的一個對象,你可能想看看有關PHP and Object Oriented Programming一些信息。

附註和涼爽的例子

見這可能給你,你可以做什麼

<?php 

$obj = (object) array('foo' => 'bar', 'property' => 'value'); 

echo $obj->foo; // prints 'bar' 
echo $obj->property; // prints 'value' 

?> 
+0

謝謝你給我的方式。 – kn3l 2009-11-13 02:04:31

-3

如果你不知道,只是嘗試的東西,直到它的工作。

echo $groupname[0]["name"]; //probably doesnt work, next 
echo $groupname[0][0]; // hmm nope 
echo $groupname[0]->name; // hey this works. 
+0

謝謝@Les .i只是嘗試: echo $ groupname [0] [「name」]; //可能不起作用,下一個 echo $ groupname [0] [0]; // hmm nope – kn3l 2009-11-12 08:11:34

+0

瞭解你在做什麼比僅僅嘗試做得更好。 – Alex 2009-11-12 08:22:10

+0

你至少在我看來,通過嘗試,通過犯錯來學會理解。 – Les 2009-11-12 08:25:09

0

這可以用foreach輕鬆完成一個想法,這個很酷的例子。

$ groupname var看起來像一個對象數組。讓我們有一個模擬類, 將爲我們的目的創建對象。

class MyClass 
{ 
public $name = ''; 

public function __construct($n) 
{ 
    $this->name = $n; 
} 
} 

該類的name屬性爲/ member。該組名$是一個 數組作爲這樣的對象(從的var_dump)...我們可以創建一個數組 像這樣:

$groupnames = Array(
     new MyClass ('AAA'), new MyClass ('BBB') 
    ); 

要打印出數組中的信息,我們可以使用foreach constrcut 的PHP。

foreach($groupname as $group) 
{ 
    print "$group->name\n"; 
} 

這將在每行上打印名稱。有這個環路輸出「AAA | BBB」留 作爲一個練習:)提示:您可以使用「結束()」建造這樣 「結束($組)」 ...

問候, Riza Dindir