的大雁你的問題是,爲了進行排序$oneline[4]
,這似乎包含一個字符串值,則需要以下步驟適用:
- 分割字符串到一個數組(
$oneline[4] = explode(',', $oneline[4])
)
- 排序所得到的陣列(
sort($oneline[4])
)
- 陣列組合成一個字符串(
$oneline[4] = implode(',', $oneline[4])
)
由於我得到的印象變量命名是低優先級列表中我重新使用$oneline[4]
變量。主要是爲了澄清我所指代碼的哪一部分。
話雖這麼說,有你應該作出其他改善措施,如果你想成爲未來的你自己說話了(如果你需要在一兩個月的這個代碼工作)
- 選擇一個編碼風格,並堅持下去,原來的代碼看起來就像是複製/來自至少4個不同的來源(主要是不一致的報價的標誌和大括號)
- 儘量限制重複昂貴的操作粘貼,例如只要你可以打開文件(公平地說,
agents.data
可以包含31行和d的users.txt
將被打開一次造成我看像一個傻瓜)
我已經更新了你的代碼樣本,試圖說明我的意思通過上述幾點。
<?php
error_reporting(0);
$lines = array();
$users = false;
$fp = fopen('http://20.19.202.221/exports/agents.data', 'r');
while ($fp && !feof($fp)) {
$line = trim(fgets($fp));
$lines[] = $line;
$oneline = explode('|', $line);
// if we have $users (starts as false, is turned into an array
// inside this if-block) or if we have collected 30 or more
// lines (this condition is only checked while $users = false)
if ($users || count($lines) > 30) {
// your code sample implies the users.txt to be small enough
// to process several times consider using some form of
// caching like this
if (!$users) {
// always initialize what you intend to use
$users = [];
$fz = fopen('users.txt', 'r');
while ($fz && !feof($fz)) {
$users[] = explode(',', trim(fgets($fz)));
}
// always close whatever you open.
fclose($fz);
}
// walk through $users, which contains the exploded contents
// of each line in users.txt
foreach ($users as $onematch) {
if (strpos($oneline[1], $onematch[1])) {
// now, the actual question: how to sort $oneline[4]
// as the requested example was not available at the
// time of writing, I assume
// it to be a string like: 'b,d,c,a'
// first, explode it into an array
$oneline[4] = explode(',', $oneline[4]);
// now sort it using the sort function of your liking
sort($oneline[4]);
// and implode the sorted array back into a string
$oneline[4] = implode(',', $oneline[4]);
echo $onematch[0], $oneline[4], '<br>';
}
}
}
}
fclose($fp);
我希望這不會冒犯你太多,只是試圖幫助,而不僅僅是提供手頭問題的解決方案。
你想如何對它們進行排序? – kittykittybangbang
也許你可以嘗試保存從你的fopen()返回的數據並保存在一個json或數組上,然後你可以訂購這個新的數組或json(本地存儲) – BlackHack123
@kittykittybangbang我想按降序對它進行排序。 – JustinasT