19
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Làm thế nào tôi có thể thay thế một chuỗi phụ bằng một số chuỗi khác cho tất cả các mục của một mảng trong PHP?
Tôi không muốn sử dụng một vòng lặp để làm điều đó. Có một chức năng được xác định trước trong PHP làm chính xác điều đó?
Làm thế nào tôi có thể làm điều đó trên các phím của mảng?
hỏi ngày 12 tháng 2 năm 2011 lúc 8:01Feb 12, 2011 at 8:01
5
Tại sao không sử dụng str_replace mà không có vòng lặp?
$array = array['foobar', 'foobaz'];
$out = str_replace['foo', 'hello', $array];
Đã trả lời ngày 12 tháng 2 năm 2011 lúc 8:13Feb 12, 2011 at 8:13
Netcodernetcodernetcoder
65.1K17 Huy hiệu vàng121 Huy hiệu bạc142 Huy hiệu đồng17 gold badges121 silver badges142 bronze badges
5
$array = array_map[
function[$str] {
return str_replace['foo', 'bar', $str];
},
$array
];
Nhưng array_map
chỉ là một vòng lặp ẩn. Tại sao không sử dụng một cái thật?
foreach [$array as &$str] {
$str = str_replace['foo', 'bar', $str];
}
Điều đó dễ dàng hơn nhiều.
Đã trả lời ngày 12 tháng 2 năm 2011 lúc 8:07Feb 12, 2011 at 8:07
NikicnikicNikiC
99,6K36 Huy hiệu vàng188 Huy hiệu bạc224 Huy hiệu đồng36 gold badges188 silver badges224 bronze badges
1
Đây là một ý tưởng rất tốt mà tôi đã tìm thấy và sử dụng thành công:
function str_replace_json[$search, $replace, $subject]
{
return json_decode[str_replace[$search, $replace, json_encode[$subject]], true];
}
Nó cũng tốt cho các mảng đa chiều.
Nếu bạn thay đổi "Đúng" thành "Sai" thì nó sẽ trả lại một đối tượng thay vì một mảng kết hợp.
Nguồn: Codelinks
Đã trả lời ngày 13 tháng 11 năm 2014 lúc 10:51Nov 13, 2014 at 10:51
1
Tôi không chắc điều này hiệu quả như thế nào, nhưng tôi muốn thay thế các chuỗi trong một mảng đa chiều lớn và không muốn lặp qua tất cả các mục vì cấu trúc mảng khá năng động.
Đầu tiên tôi json_encode
mảng thành một chuỗi.
Thay thế tất cả các chuỗi tôi muốn [cần sử dụng preg_replace
nếu có các ký tự không phải là tiếng Anh được mã hóa bởi json_encode
].
$array = array_map[
function[$str] {
return str_replace['foo', 'bar', $str];
},
$array
];
1 để lấy lại mảng.
Đã trả lời ngày 28 tháng 11 năm 2015 lúc 13:31Nov 28, 2015 at 13:31
GolugoluGolu
4165 Huy hiệu bạc16 Huy hiệu Đồng5 silver badges16 bronze badges
function my_replace_array[$array,$key,$val]{
for[$i=0;$i $needle, 'replace' => $replace ]
];
}
Đã trả lời ngày 7 tháng 4 năm 2020 lúc 18:54Apr 7, 2020 at 18:54
J.BizMaiJ.BizMaiJ.BizMai
2.4053 huy hiệu vàng22 Huy hiệu bạc44 Huy hiệu đồng3 gold badges22 silver badges44 bronze badges
$base = array['citrus' => array[ "orange"] , 'berries' => array["blackberry", "raspberry"], ];
$replacements = array['citrus' => array['pineapple'], 'berries' => array['blueberry']];
$basket = array_replace_recursive[$base, $replacements];
$basket = array_replace[$base, $replacements];
Matt Ke
3.27911 Huy hiệu vàng30 Huy hiệu bạc47 Huy hiệu đồng11 gold badges30 silver badges47 bronze badges
Đã trả lời ngày 13 tháng 9 năm 2021 lúc 1:48Sep 13, 2021 at 1:48
1