2017-10-28 55 views
-2

如何打破不同部分中地址的值?在不同部分中斷字符串

例如:Jl。作品編號181 RT 006 RW 011出品。 Sukabungah Kec。蘇卡加迪萬隆市

是:

$address = "Jln. Suka cita No 1, RT 001 RW 002 Kota Bandung"; 

到:

$jln = "suka cita no 1 "; 
$rt = "001"; 
$rw = "002"; 
$kota = "bandung"; 
+0

你的問題是什麼? –

+0

打破可變 從:$ ADRESS = 「惹須賀CITA否1,RT 001 RW 002哥打萬隆。」 到: $ JLN =蘇卡CITA無1 $ RT = 001 $ RW = 002 $科塔= bandung –

回答

1

正則表達式是用於拉出特定結構的字符串的部分工具......但前提是你可以依靠它預期的格式之中。

$address = "Jln. Suka cita No 1, RT 001 RW 002 Kota Bandung"; 

// Match everything from the start to the first comma 
preg_match('/^([^,]+),/', $address, $matches); 
$jln = $matches[1]; 

// Match a row of digits appearing atter " RT " 
preg_match('/ RT (\d+) /', $address, $matches); 
$rt = $matches[1]; 

// Match a row of digits appearing after " RW " 
preg_match('/ RW (\d+) /', $address, $matches); 
$rw = $matches[1]; 

// Match everything from the string "Kota " to the end of line 
preg_match('/Kota (.+)$/', $address, $matches); 
$kota = $matches[1]; 

代碼沒有經過測試,因爲我寫的我的電話這個答案,但是這將是非常類似的措施。

+0

華,非常感謝它的工作 –

0

如果你構建以適當的方式在數據庫中的數據會更容易實現這一目標。嘗試這樣的事情。

首先,你需要將數據存儲在你需要它的結構數據庫,您將需要它來創建與行的表有點像這樣:

jln 
rt 
rw 
kota 

的SQL查詢來實現這一目標看起來像下面:

CREATE TABLE IF NOT EXISTS `test` (
    `jln` text NOT NULL, 
    `rt` text NOT NULL, 
    `rw` text NOT NULL, 
    `kota` text NOT NULL 
); 

INSERT INTO `test` (`jln`, `rt`, `rw`, `kota`) VALUES 
('suka cita no 1', '001', '002', 'bandung'); 

查詢數據庫拉出值

// Open database 
$m_db = new mysqli('your_hostname', 'your_username'], 'your_password', 'your_db_name']); 

// Check for errors 
if ($m_db->connect_errno > 0) { 
    trigger_error('Unable to connect to database [' . $m_db->connect_error . 
    ']', E_USER_ERROR); 
} 

// Query the database 
$result = $db->query("SELECT * FROM test"); 

// Check that there is a valid result 
$data = array(); 
if ($result) { 
    // Put all of the results into an array 
    while ($result_row = $result->fetch_assoc()) { 
     $data[] = $result_row; 
    } 

    // Free the database handle 
    $result->free(); 
} 

// Example code to display output for debugging 
foreach ($data AS $values) { 
    print_r($values); 
} 

這將會把你的價值觀到一個數組如下:

$values[0]['jln'] = 'suka cita no 1' 
$values[0]['rt'] = '001' 
$values[0]['rw'] = '002' 
$values[0]['kota'] = 'bandung' 
+0

如果有「while」爲什麼我們再次使用「foreach」? 我從w3school讀取的只是清晰的使用 –

+0

foreach部分只是一個示例,向您顯示代碼將輸出的數據。 – MikeyBunny

相關問題