Tôi chỉ viết hàm này để xuất ra một mảng dưới dạng văn bản:
Nên đầu ra mảng định dạng độc đáo.
LƯU Ý QUAN TRỌNG:
Cẩn thận với đầu vào của người dùng.
Kịch bản này đã được tạo ra để sử dụng nội bộ.
Nếu bạn có ý định sử dụng điều này cho mục đích sử dụng công cộng, bạn sẽ cần thêm một số xác thực dữ liệu bổ sung để ngăn chặn việc tiêm script.
Đây không phải là bằng chứng ngu ngốc và chỉ nên được sử dụng với dữ liệu đáng tin cậy.
Hàm sau sẽ xuất ra một cái gì đó như:
$var = array(
'primarykey' => array(
'test' => array(
'var' => array(
1 => 99,
2 => 500,
),
),
'abc' => 'd',
),
);
đây là chức năng (lưu ý: chức năng hiện đang được định dạng để thực hiện oop.)
public function outArray($array, $lvl=0){
$sub = $lvl+1;
$return = "";
if($lvl==null){
$return = "\t\$var = array(\n";
}
foreach($array as $key => $mixed){
$key = trim($key);
if(!is_array($mixed)){
$mixed = trim($mixed);
}
if(empty($key) && empty($mixed)){continue;}
if(!is_numeric($key) && !empty($key)){
if($key == "[]"){
$key = null;
} else {
$key = "'".addslashes($key)."'";
}
}
if($mixed === null){
$mixed = 'null';
} elseif($mixed === false){
$mixed = 'false';
} elseif($mixed === true){
$mixed = 'true';
} elseif($mixed === ""){
$mixed = "''";
}
//CONVERT STRINGS 'true', 'false' and 'null' TO true, false and null
//uncomment if needed
//elseif(!is_numeric($mixed) && !is_array($mixed) && !empty($mixed)){
// if($mixed != 'false' && $mixed != 'true' && $mixed != 'null'){
// $mixed = "'".addslashes($mixed)."'";
// }
//}
if(is_array($mixed)){
if($key !== null){
$return .= "\t".str_repeat("\t", $sub)."$key => array(\n";
$return .= $this->outArray($mixed, $sub);
$return .= "\t".str_repeat("\t", $sub)."),\n";
} else {
$return .= "\t".str_repeat("\t", $sub)."array(\n";
$return .= $this->outArray($mixed, $sub);
$return .= "\t".str_repeat("\t", $sub)."),\n";
}
} else {
if($key !== null){
$return .= "\t".str_repeat("\t", $sub)."$key => $mixed,\n";
} else {
$return .= "\t".str_repeat("\t", $sub).$mixed.",\n";
}
}
}
if($lvl==null){
$return .= "\t);\n";
}
return $return;
}
Thay phiên bạn có thể sử dụng kịch bản này tôi cũng đã viết cách đây một thời gian:
Điều này là tốt đẹp để sao chép và dán các phần của một mảng.
(Sẽ gần như không thể làm điều đó với đầu ra nối tiếp)
Không phải là chức năng sạch nhất nhưng nó hoàn thành công việc.
Điều này sẽ xuất ra như sau:
$array['key']['key2'] = 'value';
$array['key']['key3'] = 'value2';
$array['x'] = 7;
$array['y']['z'] = 'abc';
Cũng chăm sóc cho đầu vào của người dùng. Đây là mã.
public static function prArray($array, $path=false, $top=true) {
$data = "";
$delimiter = "~~|~~";
$p = null;
if(is_array($array)){
foreach($array as $key => $a){
if(!is_array($a) || empty($a)){
if(is_array($a)){
$data .= $path."['{$key}'] = array();".$delimiter;
} else {
$data .= $path."['{$key}'] = \"".htmlentities(addslashes($a))."\";".$delimiter;
}
} else {
$data .= self::prArray($a, $path."['{$key}']", false);
}
}
}
if($top){
$return = "";
foreach(explode($delimiter, $data) as $value){
if(!empty($value)){
$return .= '$array'.$value."<br>";
}
};
echo $return;
}
return $data;
}