PHP 数组元素按关键字排序

array('美国中国','我爱中国','在中国',‘中国人','中国饭店');关键字是:中国,想把这个数组排列成:array('中国人','中国饭店','在中国','美... array('美国中国','我爱中国','在中国',‘中国人','中国饭店');
关键字是:中国 ,想把这个数组排列成:
array('中国人','中国饭店','在中国','美国中国','我爱中国');
反正关键字出现在元素中位置靠前的排在前面,该怎么写啊?
展开
 我来答
南宫婉那朵菊
推荐于2016-09-05 · TA获得超过117个赞
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
手打的~自己测试下有无错误。

<?php
$arr = array( '汗死啦中国饭店', '中国人', '在中国', '美国中国', '我爱中国', '美国西班牙' );
$keyword = '中国'; //关键字
$new_arr = array(); //初始化New Array
/**
* 大致意思就是,用strpos函数找出关键字出现的位置,然后生成新的数组,排序。。。
* 要注意的是,strpos在字符串开头找到关键字,会返回0。找不到关键字则返回false或者与其相等的非布尔值""所以,得判断一下~。
*/
foreach( $arr as $val ) {
$pos = trim( strpos( $val, $keyword ) );
if ( ctype_digit( $pos ) ) {
$new_arr += array( $val => $pos );
}
}
asort( $new_arr ); //升序
/**
* 最后就是显出搜索结果,Arr2Str一下就O了。
*/
echo '关键字: ' . $keyword;
echo '<br />';
echo '搜索结果: ' . implode( ',', array_keys( $new_arr ) );
/**
* 到此,这不就O了吗!如果你想写的细致一点就把关键字在“搜索结果”里加亮。很简单的~自己动手搞吧~~:)
*/
圣鸾OJ
2015-10-03 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:114万
展开全部
手打的~自己测试下有无错误。

<?php
$arr = array( '汗死啦中国饭店', '中国人', '在中国', '美国中国', '我爱中国', '美国西班牙' );
$keyword = '中国'; //关键字
$new_arr = array(); //初始化New Array
/**
* 大致意思就是,用strpos函数找出关键字出现的位置,然后生成新的数组,排序。。。
* 要注意的是,strpos在字符串开头找到关键字,会返回0。找不到关键字则返回false或者与其相等的非布尔值""所以,得判断一下~。
*/
foreach( $arr as $val ) {
$pos = trim( strpos( $val, $keyword ) );
if ( ctype_digit( $pos ) ) {
$new_arr += array( $val => $pos );
}
}
asort( $new_arr ); //升序
/**
* 最后就是显出搜索结果,Arr2Str一下就O了。
*/
echo '关键字: ' . $keyword;
echo '<br />';
echo '搜索结果: ' . implode( ',', array_keys( $new_arr ) );
/**
* 到此,这不就O了吗!如果你想写的细致一点就把关键字在“搜索结果”里加亮。很简单的~自己动手搞吧~~:)
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaogeifeile
2010-07-21 · TA获得超过236个赞
知道小有建树答主
回答量:429
采纳率:0%
帮助的人:364万
展开全部
$pos = strpos("中国饭店","中国")
echo $pos;
结果:0

这个函数会返回一个字符串在另一个字符串中排的位数
如果第第一位会返回0,第二位会返回1,以此类推。没有改字符串会返回false
需注意的是汉字在这里是按字节算的

你可以用这个函数通过起泡法重新排列数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式