有个问题想请教一下以name的第一个字母顺序给company排序:<? foreach($event['Company'] as $company) {
e("<a href=".$company['homepage_url']."><img src='".$company['logo100_url']."' width='100' border='0' /></a>");
} //alt=".$company['name']." ?>
e("<a href=".$company['homepage_url']."><img src='".$company['logo100_url']."' width='100' border='0' /></a>");
} //alt=".$company['name']." ?>
解决方案 »
- 一个字符串难题~
- 如何使各文件类型各规格位???
- php有中国官方网站吗?
- 请教关于phpcms的一个问题
- xp系统上已经安装了apach tomcat 6跟mysql 可以运行jsp 现在想搭一个php的运行环境该如何配置呢?
- 数据库升级问题:从4.0.21 升级到 5.0.22
- [讨论|共享]是不是有一种这样子生成静态新闻网页的方法呀?大家看看。
- document.write里面怎么写一个alart事件?在script里面的
- 如何把VBB论坛的数据库操作类db_mysql.php改成sql server类
- 我是root,请问我如何设置用户aaa的权限,使它也可以创建属于自己的数据库文件
- 关于curl读取网站的问题?
- 求一個sql語句
备注
ord()函数可以获取ASCII值
int ord(string str);
能不能说的详细一点,谢谢另外能否用asort()函数排序呢
$company数组的值排序呢?
如果你说给$company数组值排序的话 可以用asort()排序~
$newcompany=$com;
$names;
$urls;
foreach($com as $key=>$val) {
$names[$key] = $val['name'];
$urls[$key] = $val['url'];
}
array_multisort($names,SORT_STRING,SORT_ASC,$urls,SORT_STRING,SORT_ASC,$com);//使用name字符串值来排序如果相同则用url字符串值二次排序
print_r($com);
可以使用asortasort
(PHP 4, PHP 5)asort — 对数组进行排序并保持索引关系说明
bool asort ( array &$array [, int $sort_flags ] )
本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。 成功时返回 TRUE, 或者在失败时返回 FALSE. Example #1 asort() 例子<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
以上例程会输出:c = apple
b = banana
d = lemon
a = orange
fruits 被按照字母顺序排序,并且单元的索引关系不变。 可以用可选的参数 sort_flags 改变排序的行为,详情见 sort()。 但是要注意asort默认是A-Z a-z从大写字母到小写字母这样的一个顺序(根据ASCII码来排序的),看是否能满足你的要求
我尝试过用asort(),但是没有变化。这个网站是用的cakephp框架,是不是只能用框架自带的排序函数呢
array("name"=>"ddss", "homepage_url"=>"ad........" .....),....
)这样的结构是不能用sort来直接排序的,需要使用自定义排序,我写了段测试代码,应该可以解决你的问题了,代码如下:<?php
$fruits = array(
array("name" => "qqqsafdabb", "a" => "orange", "b" => "banana", "c" => "apple"),
array("name" => "hresafdabb", "a" => "orange", "b" => "banana", "c" => "apple"),
array("name" => "safdabb", "a" => "orange", "b" => "banana", "c" => "apple"),
array("name" => "cccg", "a" => "orange", "b" => "banana", "c" => "apple")
);//排序函数
function cmp($a,$b)
{
return strcmp($a['name'], $b['name']);
}
//自定义排序
usort($fruits, 'cmp');foreach ($fruits as $key => $val) {
echo "$key = {$val['name']}\n";
}
?>
非常谢谢你的回复,我是PHP入门者,所以很多地方都不太理解刚弄了一下,还是不太成功,我的代码是这样写的:
<?
foreach($event['Company'] as $value) { //生成$company数组
$company = $value;
}
function cmp($a,$b)
{
return strcmp($a['name'], $b['name']);
}
//自定义排序
usort($company, 'cmp');
foreach ($company as $key => $val) {
echo "$key = {$val['name']}\n";
} foreach($event['Company'] as $company) {
e("<a href=".$company['homepage_url']."><img src='".$company['logo100_url']."' width='100' border='0' /></a>");
} //alt=".$company['name']." ?>实在不好意思,麻烦朋友了
需要再把$company赋回给$event['Company']吗?
感觉有点糊涂了,foreach($event['Company'] as $value) { //生成$company数组
$company = $value;
}这段代码完全不明白意思,赋值的语法也是错的,如果$event['Company']是要排序的数组话,直接传入即可
foreach($event['Company'] as $value) { //生成$company数组
$company[] = $value;
}
function cmp($a,$b)
{
return strcmp($a['name'], $b['name']);
}
//自定义排序
usort($company, 'cmp');foreach ($company as $key => $val) {
echo "$key = {$val['name']}\n";
}foreach($event['Company'] as $company) {
e("<a href=".$company['homepage_url']."><img src='".$company['logo100_url']."' width='100' border='0' /></a>");
} //alt=".$company['name']." ?>foreach($event['Company'] as $company) {
e("<a href=".$company['homepage_url']."><img src='".$company['logo100_url']."' width='100' border='0' /></a>");
} //alt=".$company['name']." 这段代码还是不太明白意思,你是要验证呢还是其他的目的?
我就是没搞清楚$event['Comapany']和$company的关系,不过貌似好像他们只是有关联,但不一样,因为我用$event['Comapany']['name']输出不了
不是验证,就是想依次输出各个赞助商的LOGO和URL链接,而且是以名字字母的先后顺序输出