在不使用数组函数的情况下实现数组排序

想到的是两种方法,第一种是



$array = array(1,3,10,4,6,9,7,5,8);

$new_arr = $tmp = array();

$count = count($array);

for($i=0; $i<$count; $i++)
{
    $key = 0;
    for($j = 0; $j < $count; $j++) {
        if(isset($array[$j]) && ($array[$i] < $array[$j])) {
            $key++;
        }
    }
    $tmp[$key] = $array[$i]; // 确认好每个数值的位置
}

// 格式化好数据的显示
for($i = 0; $i < $count; $i++)
{
    $new_arr[$i] = $tmp[$i];
}
print_r($new_arr);

后来感觉麻烦,就又有了第二种方法:

$array = array(1, 3, 2, 5, 9);

$count = count($array);

for($i=0; $i<$count; $i++)
{
    for($j=$i+1; $j<$count; $j++)
    {
        if(isset($array[$j]) && ($array[$i] < $array[$j])) {
            $val = $array[$i];
            $array[$i] = $array[$j];
            $array[$j] = $val;
        }
    }
}

print_r($array);
时间: 2024-10-12 19:38:55

在不使用数组函数的情况下实现数组排序的相关文章

如何在不使用系统函数的情况下实现PHP中数组系统函数的功能

PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= array(1,2,3,4,5,6,"a"=>7,"b"=>8,"c"=>"haha",10); 以下是对于这个数组可以使用的系统函数和不使用系统函数获得同样效果的方式: 1.返回数组的所有的值,返回数组.(arra

析构函数什么情况下要定义为虚函数?

原文出处:点击我:) 1.第一段代码 #include<iostream>using namespace std;class ClxBase{public:    ClxBase() {};    ~ClxBase() {cout << "Output from the destructor of class ClxBase!" << endl;}; void DoSomething() { cout << "Do someth

判断对象是否为数组/函数

打印Object的prototype属性: 有一个toString方法,不同于一般变量的toString方法,当Object的toString方法执行时: 1.获取当前对象的[[Class]]属性的值; 2.返回 "[object " + 第一步得出的值+ "]"格式的字符串,例如[object Array], 解析: [[Class]]是一种内部属性,所有的对象(原生对象和宿生对象)都拥有该属性,描述该对象的类型 (值得注意的是[[Class]]的值只能是Obje

JavaScript进阶系列04,函数参数个数不确定情况下的解决方案

本篇主要体验函数参数个数不确定情况下的一个解决方案.先来看一段使用函数作为参数进行计算的实例. var calculate = function(x, y, fn) { return fn(x, y); }; var sum = function(x, y) { return x + y; }; var diff = function(x, y) { return x - y; }; var sumResult = calculate(1, 2, sum), diffResult = calcu

在函数被装饰的情况下如何取消装饰器,访问原始函数

在函数被装饰器装饰的情况下,需要保持原始函数的文档,帮助信息等信息,或者直接调用原始函数,此时需要引入wraps模块 #!/usr/bin/env python #coding:utf-8 #@Author:Andy # Date: 2017/6/14 import time from random import randrange # 装饰器 def timer(func): """ Measure function's running time ""&

C++:一般情况下,设计函数的形参只需要两种形式

C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const int &p_para). 它们的特点如下: # 引用形参适用于需要改变变量数据的情况,常量引用形参适用于不需要改变对象.变量数据的情况. # 引用形参需要对象.变量来传递值,常量引用形参则不需要,可以直接传递表达式或者函数返回值. 通过这两种方式可以涵盖所有可能需要的设计情况,而通过这种方式实现的

编写高质量代码改善C#程序的157个建议——建议16:元素数量可变的情况下不应使用数组

建议16:元素数量可变的情况下不应使用数组 在C#中,数组一旦被创建,长度就不能改变.如果我们需要一个动态且可变长度的集合,就应该使用ArrayList或List<T>来创建. 而数组本身,尤其是一维数组,在遇到要求高效率的算法时,则会专门被优化以提升其效率.一维数组也成为向量,其性能是最佳的,在IL中使用了专门的指令来 处理它们(如newarr.ldelem.ldelema.ldelen和stelem). 从内存的使用角度来讲,数组在创建时被分配了一段固定长度的内存.如果数组的元素是值类型,

保留键的情况下取字典中最大的值(max\zip函数的联合使用)

在我们平常想要获取字典中value最大或者最小的值的时候,常常使用如下函数: testDict = {"age1":18,"age2":20,"age2":6,"age2":100} v1 = max(testDict.values()) print(v1) #打印结果为100 这样已经达到了获取最大值的目的,但是这样就丢失了key.要如何保留key呢,这就需要用到zip函数 zip函数的作用是将两个序列以顺序对应起来,最后生

如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)

0x01 问题提出 还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门),我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧,今天我要给大家分享的是如何在命令长度受限的情况下成功get到webshell,以及关于函数参数受限的突破,mysql的一些骚操作技巧~~~ 0x02 问题分析 我们先看个例子: <?php $param = $_REGUEST['param']; if(strlen($param) < 17){ eval($param)