2017-05-10 21 views
1

使用PHP逗號分隔,我想從對象數組選擇某些值,加入他們以形成由逗號分隔的一個連續字符串,這保存到名爲$isbn變量。加入字符串和利用PHP

我有一個名爲$items對象的數組。 A var_dump($items)產生this。我需要選擇item_isbn值。

我期望的結果是;

echo $isbn 

// would produce 
// '0-7515-3831-0,978-0-141-38206-7,978-1-30534-114-1' 

擺脫了連字符的將是一個獎金,但我想我可以使用str_replace實現這一目標。

回答

2

這裏,我們去:

$isbnList = []; 
foreach ($arrayObject as $item) { 
    if (isset($item->item_isbn)) { 
     $isbnList[] = $item->item_isbn; 
    } 
} 

$isbn = implode(",", $isbnList); 

一下:

echo $isbn; 

爲了您的信息:

  • foreach的作品,因爲它是一個數組。它並不關心它裏面的每一件物品。
  • 每個循環中的對象($item)的是php的默認對象(如你提供的轉儲數據)。這應該被稱爲$object->property。這個對象的屬性並不總是可用的,所以檢查它是否可用的內置函數名稱isset()是必不可少的。
  • 通過知道implode()是內置函數從PHP建立一個分隔符的基礎上的字符串(意味着這一個邊數組中的每個項目必須是一個標量值(INT,字符串))。我們構建這個數組以準備進行調用。
  • 剩下的只是關於語法如何,用數組或對象的工作......你可以輕鬆地查找PHP手冊頁面上,如:http://php.net/manual/en/language.types.array.php

最流行的編程語言提供時下我們的內置功能像這樣implode(),只是不同的命名。

+0

我更新了我上面的答案。永遠願意的人。 – ThangTD

+0

感謝您的詳細解釋!這非常有用,正是我所需要的。我的問題得到了投票,不知道爲什麼! –

+1

問問題沒有錯。我非常感謝你,一旦我看到你已經完成的工作目錄列表。這就是爲什麼我只是爲了平衡你的聲譽而投票,並讓你不要猶豫這樣的事情。享受它的人。 – ThangTD