2016-05-20 34 views
1

我正在從數據庫中獲取內容,但是這種內容格式不正確,我想實現。刪除部分PHP字符串之前echo

如何數據來自DB:

{"5":"The content"} 

在第一套""數量是每個條目,而不是順序不同。

我只需要這個內容。使用PHP刪除不需要的字符串部分的最佳方法是什麼?

這是我當前如何顯示內容:

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo $row["form_data"]. "<br>"; 
    } 
} else { 
    //empty message will be here 
} 
+0

它看起來像JSON這樣過來的結果,並循環解碼或使用類似'復位()'來獲得第一個/唯一元素的值。 – jeroen

+0

你是否需要''5「來自'{」5「:」內容「}'? –

+0

您的'$ row [「form_data」]是否包含「{」5「:」內容「}'? –

回答

1

這是一個JSON字符串,所有你需要做的是json_decode()該字符串

使用json_decode()的第二PARAM的JSON轉換成一個陣列,無論它是什麼定義爲JSON即你是一個對象,那麼您可以簡單地使用current數組語法來獲取內容部分,而不管這些數據中的數字(5)是什麼。

$data = json_decode($row["form_data"], true); 
echo current($data); 
+2

不要回顯'第5個索引。使用'current'。由於這個*在第一組「」中的數字是不同的每個條目,而不是順序。* –

+0

@ HankyPanky好的電話,沒想到那 – RiggsFolly

+0

完美,謝謝! :) –

1

呼應

沒有之前刪除PHP字符串的部分,其實沒有。

{"5":"The content"} 

JSON,繼續decode到您喜歡並採取號碼。沒有必要嘗試通過一些字符串操作來解析字符串。

運行這一點,你會看到,你可以自己編寫代碼的

print_r(json_decode('{"5":"The content"}',true)); 

休息時,不需要複製粘貼回答吧? :)

0

您可以使用json_decode做的是,這是一個例子:

$string = '{"5":"The content"}'; 
    $json = json_decode($string); 
    var_dump($json->{'5'}); 

,其結果是:

string 'The content' (length=11) 

如果不是5,但你要第一個記錄,你可以這樣做:

$string = '{"5":"The content", "6":"The"}'; 
    $json = json_decode($string); 
    foreach ($json as $key => $value) { 
     var_dump($value); 
     exit; 
    } 

這將只打印第一個值

或者更好的,你可以使用current()

var_dump(current($json)); 
+2

如果有一天它不是5呢? –