在foreach循环PHP内的数组中设置值
您好,我正在foreach循环的数组中设置一个键值对在foreach循环PHP内的数组中设置值,php,arrays,loops,foreach,key-value,Php,Arrays,Loops,Foreach,Key Value,您好,我正在foreach循环的数组中设置一个键值对 foreach ($output as $data) { $resourceType = strpos($data, "d"); if ($resourceType) { $ftpArray[]['resourceType'] = "Folder"; } else { $ftpArray[]['resourceType'] = "File"; } $resourceName = strrchr($data, "
foreach ($output as $data) {
$resourceType = strpos($data, "d");
if ($resourceType) {
$ftpArray[]['resourceType'] = "Folder";
} else {
$ftpArray[]['resourceType'] = "File";
}
$resourceName = strrchr($data, " ");
$resourceName = trim($resourceName);
if ($resourceName != ".." && $resourceName != "." && $resourceName != "") {
$ftpArray[]['resourceName'] = $resourceName;
}
}
e、 g
我是通过foreach循环来实现的
foreach ($output as $data) {
$resourceType = strpos($data, "d");
if ($resourceType) {
$ftpArray[]['resourceType'] = "Folder";
} else {
$ftpArray[]['resourceType'] = "File";
}
$resourceName = strrchr($data, " ");
$resourceName = trim($resourceName);
if ($resourceName != ".." && $resourceName != "." && $resourceName != "") {
$ftpArray[]['resourceName'] = $resourceName;
}
}
但结果是这样的
[0]=>
array(1) {
["resourceType"]=>
string(4) "File"
}
[1]=>
array(1) {
["resourceType"]=>
string(4) "Test"
}
[2]=>
array(1) {
["resourceType"]=>
string(4) "File"
}
[3]=>
array(1) {
["resourceName"]=>
string(9) ".htaccess"
}
而不是我在问题开始时给出的例子。如何让数组像第一个示例那样填充键值对。制作一个tmp数组
foreach ($output as $data) {
$a = array();
if (strpos($data, "d")) {
$a['resourceType'] = "Folder";
} else {
$a['resourceType'] = "File";
}
$resourceName = trim(strrchr($data, " "));
if ($resourceName != ".." && $resourceName != "." && $resourceName != "") {
$a['resourceName'] = $resourceName;
}
$ftpArray[] = $a;
}
每次调用
$ftpArray[]='x'
都会向数组中添加新项。如果您在其中添加了一些第二维度键,则不适用。您希望将数据结构添加到数组中。这需要创建数据结构,完成工作并将其添加到阵列中:
foreach ($output as $data) {
$struct = array('resourceType' = > '', 'resourceName' => '');
// do stuff, on the struct
$resourceType = strpos($data, "d");
if ($resourceType) {
$struct['resourceType'] = "Folder";
} else {
$struct['resourceType'] = "File";
}
$resourceName = strrchr($data, " ");
$resourceName = trim($resourceName);
if ($resourceName != ".." && $resourceName != "." && $resourceName != "") {
$struct['resourceName'] = $resourceName;
}
$ftpArray[] = $struct;
}
请注意,由于总是创建结构,因此与前面的答案存在子图块差异。数组上的每个[]操作都会向循环中添加一个新元素,因此您需要创建一个临时值,然后将其添加到循环中:
$element = array();
// set the data here
$output_array[] = $element
脚本字符串位置的第二件事是从0开始,因此如果您需要知道在使用时找不到该字符,您应该使用===或!==检查返回值因为是假的