亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如圖,關于數組拆分合并優化的問題,該怎么解決?

如圖,關于數組拆分合并優化的問題,該怎么解決?

PHP
呼如林 2023-04-01 19:14:59
$vars['dedicatedip'] ='192.146.12.1'; $vars['assignedips'] = '192.168.12.1 192.134.12.1'; //ip與ip之間有換行符隔開 $arr3 = ''; if(!empty($vars['dedicatedip'])){ $arr =array($vars['dedicatedip']); } if(!empty($vars['assignedips'])){ $arr2 = explode(PHP_EOL,$vars['assignedips']); } if(!empty($arr) && !empty($arr2)){ $arr3 = array_merge($arr,$arr2); }elseif(!empty($arr2)){ $arr3 = $arr2; }elseif(!empty($arr1)){ $arr3 = $arr1; }
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

explode

使用一個字符串分割另一個字符串

$str = "11,22,33";$arr = explode(",",$str);
print_r($arr);Array(
[0] => 11
[1] => 22
[2] => 33)12345678910

implode

將一個一維數組的值轉化為字符串

$arr = [11,22,33];$str = implode("#",$arr);echo $str;11#22#3312345

split

用正則表達式將字符串分割到數組中

preg_split()函數使用了Perl兼容正則表達式語法,通常是比split()更快的替代方案。如果不需要正則表達式的威力,則使用explode()更快,這樣就不會招致正則表達式引擎的浪費。

該函數在PHP7中已被廢棄

$str = "123dqaw76eqwv8902fwer12356";$arr = split("[a-z]+", $str);
print_r($arr);Array(
[0] => 123
[1] => 76
[2] => 8902
[3] => 12356)1234567891011

preg_split

通過一個正則表達式分隔字符串

如果你不需要正則表達式功能,可以有更快(并且更簡單)的選擇比如 explode() 或 str_split()。

如果沒有成功匹配,將會返回一個數組,包含了單個元素,即輸入的字符串。

$str = "123dqaw76eqwv8902fwer12356";$arr = preg_split("/[a-z]+/i", $str);
print_r($arr);Array(
[0] => 123
[1] => 76
[2] => 8902
[3] => 12356)1234567891011

str_split

將字符串轉換為數組

$str = "hello world";
print_r(str_split($str));
print_r(str_split($str, 3));Array(
[0] => h
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => w
[7] => o
[8] => r
[9] => l
[10] => d
)Array(
[0] => hel
[1] => lo
[2] => wor
[3] => ld
)12345678910111213141516171819202122232425

array_chunk

將一個數組分割成多個

$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));Array(
[0] => Array
(
[0] => a
[1] => b
)

[1] => Array
(
[0] => c
[1] => d
)

[2] => Array
(
[0] => e
)

)Array(
[0] => Array
(
[0] => a
[1] => b
)

[1] => Array
(
[2] => c
[3] => d
)

[2] => Array
(
[4] => e
)

)1234567891011121314151617181920212223242526272829303132333435363738394041424344

array_combine

創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值

$a = array('green', 'red', 'yellow');$b = array('avocado', 'apple', 'banana');$c = array_combine($a, $b);
print_r($c);Array(
[green] => avocado
[red] => apple
[yellow] => banana
)1234567891011

array_merge

合并一個或多個數組。一個數組中的值附加在前一個數組的后面,返回作為結果的數組。

別忘了數字鍵名將會被重新編號!

$array1 = array("color" => "red", 2, 4);$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);$result = array_merge($array1, $array2);
print_r($result);Array(
[color] => red
[0] => 2
[1] => 4)Array(
[0] => a
[1] => b
[color] => green
[shape] => trapezoid
[2] => 4)Array(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4)1234567891011121314151617181920212223242526272829

如果你想完全保留原有數組并只想新的數組附加到后面,用 + 運算符。如果兩個被合并的數組含有相同的key,則保留第一個,忽略后邊的。

$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');$result = $array1 + $array2;
print_r($result);Array(
[0] => zero_a
[2] => two_a
[3] => three_a
[1] => one_b
[4] => four_b
)12345678910111213

array_merge_recursive

遞歸地合并一個或多個數組

如果輸入的數組中有相同的字符串鍵名,則這些值會被合并到一個數組中去,這將遞歸下去,因此如果一個值本身是一個數組,本函數將按照相應的條目把它合并為另一個數組。然而,如果數組具有相同的數組鍵名,后一個值將不會覆蓋原來的值,而是附加到后面。

$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" => "green", "blue"));$result = array_merge_recursive($ar1, $ar2);
print_r($ar1);
print_r($ar2);
print_r($result);Array(
[color] => Array
(
[favorite] => red
)

[0] => 5)Array(
[0] => 10
[color] => Array
(
[favorite] => green
[0] => blue
)

)Array(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)

[0] => blue
)

[0] => 5
[1] => 10)123456789101112131415161718192021222324252627282930313233343536373839404142

compact

建立一個數組,包括變量名和它們的值

對每個參數,compact() 在當前的符號表中查找該變量名并將它添加到輸出的數組中,變量名成為鍵名而變量的內容成為該鍵的值。

任何沒有變量名與之對應的字符串都被略過。

$city  = "San Francisco";$state = "CA";$event = "SIGGRAPH";$location_vars = array("city", "state");$result = compact("event", "nothing_here", $location_vars);
print_r($result);Array(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)12345678910111213

extract

從數組中將變量導入到當前的符號表

檢查每個鍵名看是否可以作為一個合法的變量名,同時也檢查和符號表中已有的變量名的沖突。

返回成功導入到符號表中的變量數目。

$var_array = [    "color" => "blue",    "size"  => "medium",    "shape" => "sphere"];
extract($var_array);echo "$color, $size, $shape\n";


查看完整回答
反對 回復 2023-04-03
  • 1 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號