Ejemplo n.º 1
0
function insert_in_array(&$array, $element, $position = null)
{
    if (count($array) == 0) {
        $array[] = $element;
    } elseif (is_numeric($position) && $position < 0) {
        if (count($array) + $position < 0) {
            $array = insert_in_array($array, $element, 0);
        } else {
            $array[count($array) + $position] = $element;
        }
    } elseif (is_numeric($position) && isset($array[$position])) {
        $part1 = array_slice($array, 0, $position, true);
        $part2 = array_slice($array, $position, null, true);
        $array = array_merge($part1, array($position => $element), $part2);
        foreach ($array as $key => $item) {
            if (is_null($item)) {
                unset($array[$key]);
            }
        }
    } elseif (is_null($position)) {
        $array[] = $element;
    } elseif (!isset($array[$position])) {
        $array[$position] = $element;
    }
    $array = array_merge($array);
    return $array;
}
Ejemplo n.º 2
0
 /**
  * @return array
  * Returns the columns list, including db columns and calculated columns
  * Automatically adjusts the calc. column position
  */
 static function getColumnsC()
 {
     $columnList = static::$dbColumns;
     // array('id','student_id','month','received_amount','comments');
     $cCols = static::$calcColumns;
     //array('total_amount' => 'student_id','arrears' => 'received_amount')
     foreach ($cCols as $calCol => $col) {
         // array_search returns the key of the $col
         $position = array_search($col, $columnList) + 1;
         $columnList = insert_in_array($columnList, $calCol, $position);
     }
     return $columnList;
 }