简体   繁体   中英

Converting a large string into an arrray in php

I am trying to convert a large string into an array i can fill into an html table

<?php
/**
  Counties in the Republic of Kenya,Governors and their Political Parties.
*/

$county_data = "1. Mombasa. – Hassan Ali Joho – ODM,
2. Kwale. – Salim Mvurya – Jubilee,
3. Kilifi. – Amason Jeffah Kingi – ODM,
4. Tana River. – Dhadho Godhana – ODM,
5. Lamu. – Fahim Yasin Twaha – Jubilee,
6. Taita-Taveta. – Granton Samboja – WDM K,
7. Garissa. – Ali Bunow Korane – Jubilee,
8. Wajir. – Mohamed Abdi Mohamud – Jubilee,
9. Mandera. – Ali Ibrahim Roba - Jubilee,
10. Marsabit – Mohamud Mohamed Ali – Jubilee,
11. Isiolo – Mohamed Abdi Kuti – Independent,
12. Meru – Kiraitu Murungi – Jubilee,
13. Tharaka Nithi – Onesmus Muthomi Njuki – Jubilee,
14. Embu – Martin Nyaga Wambora – Jubilee,
15. Kitui – Charitu Ngilu – Narc Kenya,
16. Machakos – Alfred Mutua – CCM,
17. Makueni – Kivutha Kibwana – WDM K.,
18. Nyandarua – Francis Kimemia – Jubilee,
19. Nyeri – Mutahi Kahiga – Jubilee,
20. Kirinyaga. – Ann Waiguru – Jubilee,
21. Murang’a – Mwangi wa iria – Jubilee,
22. Kiambu. – Ferdinand Waititu Babayao – Jubilee,
23. Turkana. – Josphat Nanok – ODM,
24. West Pokot. – John Krop Lonyang’apuo. – KANU,
25. Samburu. – Moses Kasainie Lenolkulal – Jubilee,
26. Trans-Nzoia. – Patrick Khaemba – FORD Kenya,
27. Uasin gishu. – Jackson Mandago – Jubilee,
28. Elgeyo Marakwet. – Alex Tanui Tolgas – Jubilee,
29. Nandi. – Stephen Sang – Jubilee,
30. Baringo – Stanley K Kipris. – Jubilee,
31. Laikipia – Ndiritu Muriithi – Independent,
32. Nakuru. – Lee Kinyanjui – Jubilee,
33. Narok – Samuel Kuntai Ole Tunai – Jubilee,
34. Kajiado. – Joseph Ole Lenku – Jubilee,
35. Kericho. – Prof.Paul Chepkwony Kiprono – Jubilee,
36. Bomet. – Hillary Barchok – Jubilee,
37. Kakamega. – Wyclife Oparanya – ODM,
38. Vihiga. – Wilber Ottichilo – ODM,
39. Bungoma. – Wyclife Wafula Wangamiti – ODM,
40. Busia. – Sospeter Ojaamong – ODM,
41. Siaya. – Cornel Rasanga. – ODM,
42. Kisumu. – Peter Anyang Nyong’o. – ODM,
43. Homabay. – Cyprian Awiti – ODM,
44. Migori. – Zachary Okoth Obado – ODM,
45. Kisii. – James Ongware – ODM,
46. Nyamira. – John Nyangarama Obiena - ODM,
47. Nairobi. – Mike Sonko Mbuvi Kioko – Jubilee";

/**
 You should not modify anything above this line
*/

?>

This is what i have tried

$county_array1=( explode ('–', $county_data));

it didn't work

$county_array=( explode (',', $county_data));

it didn't work as planned

Note you shouldn't modify the $country_data. the table should look like this

#   Name           Governor             
1   Mombasa     Hassan Ali Joho     
2   Kwale       Salim Mvurya 

You can use preg_split() for this

And you have two types of Jubilee's in your example here like – Jubilee and - Jubilee, so you will need to break then both too.

$result = preg_split("/(– ODM,|– Jubilee,|– WDM K,|- Jubilee,|[. –]|[[:space:]])/",$county_data,-1,PREG_SPLIT_NO_EMPTY);

Try to this, Remove the space after the ", "

$county_data = "1. Mombasa. – Hassan Ali Joho – ODM, 2. Kwale. – Salim Mvurya – 
Jubilee, 3. Kilifi. – Amason Jeffah Kingi – ODM, 4. Tana River. – Dhadho Godhana – 
ODM, 5. Lamu. – Fahim Yasin Twaha – Jubilee, 6. Taita-Taveta. – Granton Samboja – WDM 
K, 7. Garissa. – Ali Bunow Korane – Jubilee, 8. Wajir. – Mohamed Abdi Mohamud – 
Jubilee, 9. Mandera. – Ali Ibrahim Roba - Jubilee, 10. Marsabit – Mohamud Mohamed Ali 
– Jubilee, 11. Isiolo – Mohamed Abdi Kuti – Independent, 12. Meru – Kiraitu Murungi – 
Jubilee, 13. Tharaka Nithi – Onesmus Muthomi Njuki – Jubilee, 14. Embu – Martin Nyaga 
Wambora – Jubilee, 15. Kitui – Charitu Ngilu – Narc Kenya, 16. Machakos – Alfred Mutua 
– CCM, 17. Makueni – Kivutha Kibwana – WDM K., 18. Nyandarua – Francis Kimemia – 
Jubilee, 19. Nyeri – Mutahi Kahiga – Jubilee, 20. Kirinyaga. – Ann Waiguru – Jubilee, 
21. Murang’a – Mwangi wa iria – Jubilee, 22. Kiambu. – Ferdinand Waititu Babayao – 
Jubilee, 23. Turkana. – Josphat Nanok – ODM, 24. West Pokot. – John Krop Lonyang’apuo. 
– KANU, 25. Samburu. – Moses Kasainie Lenolkulal – Jubilee, 26. Trans-Nzoia. – Patrick 
Khaemba – FORD Kenya, 27. Uasin gishu. – Jackson Mandago – Jubilee, 28. Elgeyo 
Marakwet. – Alex Tanui Tolgas – Jubilee,29. Nandi. – Stephen Sang – Jubilee, 30. 
Baringo – Stanley K Kipris. – Jubilee, 31. Laikipia – Ndiritu Muriithi – Independent, 
32. Nakuru. – Lee Kinyanjui – Jubilee, 33. Narok – Samuel Kuntai Ole Tunai – Jubilee, 
34. Kajiado. – Joseph Ole Lenku – Jubilee, 35. Kericho. – Prof.Paul Chepkwony Kiprono 
– Jubilee, 36. Bomet. – Hillary Barchok – Jubilee, 37. Kakamega. – Wyclife Oparanya – 
ODM, 38. Vihiga. – Wilber Ottichilo – ODM, 39. Bungoma. – Wyclife Wafula Wangamiti – 
ODM, 40. Busia. – Sospeter Ojaamong – ODM, 41. Siaya. – Cornel Rasanga. – ODM, 42. 
Kisumu. – Peter Anyang Nyong’o. – ODM, 43. Homabay. – Cyprian Awiti – ODM, 44. Migori. 
– Zachary Okoth Obado – ODM, 45. Kisii. – James Ongware – ODM, 46. Nyamira. – John 
Nyangarama Obiena - ODM, 47. Nairobi. – Mike Sonko Mbuvi Kioko – Jubilee";



$data_array = explode(', ', $county_data);

var_dump($data_array );

To help you along, here is a really rough version of one way to do this:

Your original data array:

$county_data = "1. Mombasa. – Hassan Ali Joho – ODM,
2. Kwale. – Salim Mvurya – Jubilee,
3. Kilifi. – Amason Jeffah Kingi – ODM,
4. Tana River. – Dhadho Godhana – ODM,
5. Lamu. – Fahim Yasin Twaha – Jubilee,
6. Taita-Taveta. – Granton Samboja – WDM K,
7. Garissa. – Ali Bunow Korane – Jubilee,
8. Wajir. – Mohamed Abdi Mohamud – Jubilee,
9. Mandera. – Ali Ibrahim Roba - Jubilee,
10. Marsabit – Mohamud Mohamed Ali – Jubilee,
11. Isiolo – Mohamed Abdi Kuti – Independent,
12. Meru – Kiraitu Murungi – Jubilee,
13. Tharaka Nithi – Onesmus Muthomi Njuki – Jubilee,
14. Embu – Martin Nyaga Wambora – Jubilee,
15. Kitui – Charitu Ngilu – Narc Kenya,
16. Machakos – Alfred Mutua – CCM,
17. Makueni – Kivutha Kibwana – WDM K.,
18. Nyandarua – Francis Kimemia – Jubilee,
19. Nyeri – Mutahi Kahiga – Jubilee,
20. Kirinyaga. – Ann Waiguru – Jubilee,
21. Murang’a – Mwangi wa iria – Jubilee,
22. Kiambu. – Ferdinand Waititu Babayao – Jubilee,
23. Turkana. – Josphat Nanok – ODM,
24. West Pokot. – John Krop Lonyang’apuo. – KANU,
25. Samburu. – Moses Kasainie Lenolkulal – Jubilee,
26. Trans-Nzoia. – Patrick Khaemba – FORD Kenya,
27. Uasin gishu. – Jackson Mandago – Jubilee,
28. Elgeyo Marakwet. – Alex Tanui Tolgas – Jubilee,
29. Nandi. – Stephen Sang – Jubilee,
30. Baringo – Stanley K Kipris. – Jubilee,
31. Laikipia – Ndiritu Muriithi – Independent,
32. Nakuru. – Lee Kinyanjui – Jubilee,
33. Narok – Samuel Kuntai Ole Tunai – Jubilee,
34. Kajiado. – Joseph Ole Lenku – Jubilee,
35. Kericho. – Prof.Paul Chepkwony Kiprono – Jubilee,
36. Bomet. – Hillary Barchok – Jubilee,
37. Kakamega. – Wyclife Oparanya – ODM,
38. Vihiga. – Wilber Ottichilo – ODM,
39. Bungoma. – Wyclife Wafula Wangamiti – ODM,
40. Busia. – Sospeter Ojaamong – ODM,
41. Siaya. – Cornel Rasanga. – ODM,
42. Kisumu. – Peter Anyang Nyong’o. – ODM,
43. Homabay. – Cyprian Awiti – ODM,
44. Migori. – Zachary Okoth Obado – ODM,
45. Kisii. – James Ongware – ODM,
46. Nyamira. – John Nyangarama Obiena - ODM,
47. Nairobi. – Mike Sonko Mbuvi Kioko – Jubilee";

To start:

// create a empty array to store things in:
$table = [];

// split the data at newlines
$lines = explode("\n", $county_data);

// loop through each line...
foreach ($lines as $line) {

    // split into id, and the rest of the line
    [$id, $rest] = preg_split('#(?<=\d). (?=[a-z])#i', $line);

    // skip the empty line (at the end)
    if (empty($rest) ) {
        continue;
    }

    // split the rest of the line, on those hyphens, n-dash, em-dashes!
    $cols = preg_split( "/[-–]/", $rest );

    // push the parts to the table array
    array_push($table, array('id' => $id, 'county' => $cols[0], 'name' => $cols[1], 'party' => $cols[2]));
}


// now you can print the table
echo '<table border="1">';
echo '<thead><tr><th>ID</th><th>County</th>Name</th><th>Party</th></tr></thead>';
echo '<tbody>';
foreach ($table as $row) {
    echo '<tr>';
        foreach ($row as $col) {
            echo '<td>' .$col .'</td>';
        }
    echo '</tr>';
}
echo '</tbody>';
echo '</table>';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM